搜索
查看: 8062|回复: 22
打印 上一主题 下一主题

[原创] 画板C程序[鼠标控制]

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-18 22:14:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[ 本帖最后由 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位的程序

评分

参与人数 1啊哈币 +5 收起 理由
admin + 5 很给力!

查看全部评分

沙发
发表于 2012-8-19 10:28:37 | 只看该作者
编译错误         
板凳
 楼主| 发表于 2012-8-19 10:34:52 | 只看该作者
=student= 发表于 2012-8-19 10:28
编译错误

C语言编译不通过.
用C++编译. 比如,Dev C++
或者直接下载我编译的程序
地板
发表于 2012-8-19 10:39:17 | 只看该作者
virfyf 发表于 2012-8-19 10:34
C语言编译不通过.
用C++编译. 比如,Dev C++
或者直接下载我编译的程序

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

现在啊哈C应该可以编译了.

评分

参与人数 1啊哈币 +5 收起 理由
admin + 5 赞一个!

查看全部评分

6#
发表于 2012-8-19 10:50:22 | 只看该作者
windows.h有什么用啊
7#
 楼主| 发表于 2012-8-19 10:55:28 | 只看该作者
=student= 发表于 2012-8-19 10:50
windows.h有什么用啊

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

哦                 
9#
 楼主| 发表于 2012-8-19 10:58:47 | 只看该作者
=student= 发表于 2012-8-19 10:57

编译过了吗
10#
发表于 2012-8-19 11:02:39 | 只看该作者
virfyf 发表于 2012-8-19 10:58
编译过了吗

过了,那windows.h有哪些函数,哪些功能
11#
 楼主| 发表于 2012-8-19 11:10:48 | 只看该作者
=student= 发表于 2012-8-19 11:02
过了,那windows.h有哪些函数,哪些功能

http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
不过是英文的.
也可以自己Google
12#
发表于 2012-8-19 11:15:12 | 只看该作者
virfyf 发表于 2012-8-19 11:10
http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
不过是英文的.
也可以自己Google

那windows程序设计这本书可以吗
13#
发表于 2012-8-19 11:26:58 | 只看该作者
不错不错{:soso_e100:}


14#
发表于 2012-8-19 11:31:59 | 只看该作者
admin 发表于 2012-8-19 11:26
不错不错

呃 ,aha-c。com                     
15#
发表于 2012-8-20 15:58:11 | 只看该作者
NBNB,小人跪下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表