啊哈磊_编程从这里起步

标题: 画板C程序[鼠标控制] [打印本页]

作者: virfyf    时间: 2012-8-18 22:14
标题: 画板C程序[鼠标控制]
[ 本帖最后由 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]
欢迎大家把自己画的贴上来.







s.JPG (47.67 KB, 下载次数: 51)

s.JPG

控制台画板.zip

140.46 KB, 下载次数: 177

32位的程序


作者: 凡夫俗子    时间: 2012-8-19 10:28
编译错误         
作者: virfyf    时间: 2012-8-19 10:34
=student= 发表于 2012-8-19 10:28
编译错误

C语言编译不通过.
用C++编译. 比如,Dev C++
或者直接下载我编译的程序
作者: 凡夫俗子    时间: 2012-8-19 10:39
virfyf 发表于 2012-8-19 10:34
C语言编译不通过.
用C++编译. 比如,Dev C++
或者直接下载我编译的程序

你用什么编译的,我用DEV C++新建的.cpp文件过不了
作者: virfyf    时间: 2012-8-19 10:44
本帖最后由 virfyf 于 2012-8-19 10:45 编辑
=student= 发表于 2012-8-19 10:39
你用什么编译的,我用DEV C++新建的.cpp文件过不了

现在啊哈C应该可以编译了.
作者: 凡夫俗子    时间: 2012-8-19 10:50
windows.h有什么用啊
作者: virfyf    时间: 2012-8-19 10:55
=student= 发表于 2012-8-19 10:50
windows.h有什么用啊

Windows API
是微软对于Windows操作系统中可用的核心应用程序编程接口的称法。它被设计为各种语言的程序调用,也是应用软件与Windows系统最直接的交互方式
编写Windows程序所用的.
作者: 凡夫俗子    时间: 2012-8-19 10:57
virfyf 发表于 2012-8-19 10:55
Windows API
是微软对于Windows操作系统中可用的核心应用程序编程接口的称法。它被设计为各种语言的程序 ...

哦                 
作者: virfyf    时间: 2012-8-19 10:58
=student= 发表于 2012-8-19 10:57

编译过了吗
作者: 凡夫俗子    时间: 2012-8-19 11:02
virfyf 发表于 2012-8-19 10:58
编译过了吗

过了,那windows.h有哪些函数,哪些功能
作者: virfyf    时间: 2012-8-19 11:10
=student= 发表于 2012-8-19 11:02
过了,那windows.h有哪些函数,哪些功能

http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
不过是英文的.
也可以自己Google
作者: 凡夫俗子    时间: 2012-8-19 11:15
virfyf 发表于 2012-8-19 11:10
http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
不过是英文的.
也可以自己Google

那windows程序设计这本书可以吗
作者: admin    时间: 2012-8-19 11:26
不错不错{:soso_e100:}



作者: 凡夫俗子    时间: 2012-8-19 11:31
admin 发表于 2012-8-19 11:26
不错不错

呃 ,aha-c。com                     
作者: gcy    时间: 2012-8-20 15:58
NBNB,小人跪下
作者: 2457878    时间: 2012-8-27 00:00
厉害!
作者: wjj760024621    时间: 2012-9-10 16:06

作者: Nurahmat    时间: 2012-9-25 23:54
这个程序值得研究,可惜正在学习当中。。。。很多地方还是看不动。
作者: ztcwlj    时间: 2012-10-26 11:06
{:soso__8447121693616695191_4:}好厉害!
作者: wangfan1003    时间: 2012-11-21 17:29
看不懂啊,太深奥了
作者: 斯塔克    时间: 2013-1-31 16:25
画完了,没办法清除啊,还想再画啊,但是要从新关掉再开了
作者: sycamore1990    时间: 2013-2-9 15:03
试了试 有意思 厉害
作者: 超神级    时间: 2013-7-22 21:44
{:soso_e124:}




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2