C_and_CPP 板


LINE

※ 引述《w0005151 (蓝厅)》之铭言: : 平台:Visual Studio 2010 : 小弟最近在学视窗程式的编写 : 想说先从最底层的Win32 API开始,应该能比较了解整个视窗的运作 : 但...找了一下坊间讲到C++视窗程式的书大多都是讲MFC : 对於Win32 API都只有几页带过,教你怎麽创个空的视窗就没了 : 有研究一下那些在讲MFC的书,觉得那对小弟而言实在太难了 : 而且版上大大好像也不推荐 : 所以我打算把Win32 API的一些基础跟流程摸熟之後转至Qt : Qt对我而言应该是比较好上手 除非很有兴趣或是有特殊需求, 不然直接学 QT 应该会较快, 我记得 QT 用起来跟用 API 刻视窗风格上完全不同. 如果最终目的是 QT, 先学会这个帮助应该不大. : 但是...上面的做法没有考虑输入或输出超过两位的情况,而且也不能处理浮点数 : 虽然硬要做还是可以(用个回圈检查有没有小数点之类的) : 想请问如果要做这种接受数字型态input的视窗程式有没有更好的作法? 在 CreateWindow 的 dwStyle 参数里加入 ES_NUMBER 应该就只能输入数字 但不确定浮点数能不能 : 另外再请问一下用CreateWindow做出来的BUTTON有没有办法帮他定义识别码ID? : 还是只能用全域变数纪录他的handler? 我记得可以在 CreateWindow 的 hMenu 参数定义一个识别码, 在 WndProc 里检测 事件时比对识别码来看是谁触发的, 可是後来我还是习惯比 hwnd, 因为 1. 还是得用全域变数或其他方法记录这个识别码. 2. 讯息回圈里的比较步骤并没有比较简单. : 还有WndProc接收的HWND型态的引数hWnd是哪一个视窗的handler? : 就我所了解程式呼叫WndProc的时机是讯息回圈从讯息伫列抓到讯息 : 然後呼叫DisPatch函式後进入 : 但是他好像也不是目前送出讯息的视窗的handler : 因为if条件那边如果改成 if(hWnd == B1)的话 : 按按钮就没有反应了 : 那这个hWnd到底是谁勒?? 应该是这个讯息回圈主视窗的 handle. : 另外处理不同的讯息只用这种 if switch case的写法吗 : 这样如果程式规模越来越大感觉会很难维护 我有试过把各种元件包成一个类别, 然後统一用一个 vector 来储存视窗上每个元件 的 hwnd, 当事件触发时只要用检查有该事件的元件哪个符合即可. 比方说发生 BN_CLICKED 只要去检查 lpClassName 是 BUTTON 的元件即可. 本质上它还是一堆 if/switch 判断式, 但因为加上 vector 可以用迭代的方式去比对 , 程式码看起来会乾净很多. : 感谢大大解答,刚开始学习视窗程式实在有好多疑问 我对这方面也很有兴趣, 但不得不说资料真的不好找, 目前最主要的资料来源还是 MSDN, 其他有些网站虽然对於 API 有更白话的说明, 不过不是 C/C++ 语言的. 以上都是凭印象回答, 如果有误就抱歉啦. --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.72.212.239
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1457055382.A.537.html
1F:推 w0005151: 感谢回答,EDIT加上ES_NUMBER好像只是限制使用者的输入 03/04 17:34
2F:→ w0005151: 只能是数字,但还是要靠自己把他从char转成int@@ 03/04 17:34
3F:→ icetofux: 这很容易 用sstream可以把字串转成int或float 03/04 19:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP