[ 本帖最后由 virfyf 于 2012-11-25 12:57 编辑 ]\n\n
新版本http://www.ahalei.com/thread-369-1-1.html
是的,你没有看错,就是用鼠标操控.
操作说明:
左键切换开始画/停止画
右键切换画笔/橡皮擦
将鼠标移到左上方字符上切换画笔
附编译好的可执行文件下载
C语言代码如下(啊哈C可编译):
[mw_shl_code=c,true]#include <windows.h>
#include <string.h>
#define LEFT_KEY 1
#define RIGHT_KEY 2
#define bool short
#define true 1
#define false 0
int main()
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
HANDLE hIn=GetStdHandle(STD_INPUT_HANDLE);
INPUT_RECORD mouseRec;
DWORD res,task;
CONSOLE_CURSOR_INFO CCI;
char title[]="控制台画板 Ver 0.21 Alpha";
char tools[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,30,31,36,0};
bool enable=false,eraser=false;
short mode=1,toolsNum=strlen(tools);
COORD modePos={0,0},enablePos={36,0},titlePos={80-strlen(title),0},foo;
CCI.bVisible=true;
CCI.dwSize=100;
SetConsoleCursorInfo(hOut,&CCI);
SetConsoleCursorPosition(hOut,modePos);
WriteConsoleOutputCharacter(hOut,tools,toolsNum,modePos,&task);
WriteConsoleOutputCharacter(hOut,title,strlen(title),titlePos,&task);
while(true)
{
WriteConsoleOutputCharacter(hOut,(enable?"Enable ":"Disenable"),9,enablePos,&task);
ReadConsoleInput(hIn, &mouseRec, 2, &res);
if(mouseRec.Event.MouseEvent.dwMousePosition.Y==0)
{
if(mouseRec.Event.MouseEvent.dwMousePosition.X<=toolsNum)
{
mode=mouseRec.Event.MouseEvent.dwMousePosition.X;
foo.X=mode;
foo.Y=0;
SetConsoleCursorPosition(hOut,foo);
}
continue;
}
if(mouseRec.Event.MouseEvent.dwEventFlags==0)
switch(mouseRec.Event.MouseEvent.dwButtonState)
{
case LEFT_KEY:
enable=!enable;break;
case RIGHT_KEY:
eraser=!eraser;
}
if(enable)
WriteConsoleOutputCharacter(hOut,(eraser?" ":&tools[mode]),1,mouseRec.Event.MouseEvent.dwMousePosition,&task);
}
}[/mw_shl_code]
欢迎大家把自己画的贴上来.
|