【VC】简易输入框(高仿山寨VB6的InputBox)
只有两个函数,全部源码不到150行。**** Hidden Message *****怎么用?int main()
{
PWCHAR ret = InputBox(NULL,L"tip",L"title",L"test",0,0);
MessageBoxW(0,ret,0,0);
if(ret){VirtualFree(ret,0,MEM_RELEASE);}
return 0;
} 如果是我的话我会在WM_CREATE里面创建控件。
另外不要在WndProc里面定义static变量或者访问全局变量,因为这样对多线程不友好。 0xAA55 发表于 2017-8-3 09:18
如果是我的话我会在WM_CREATE里面创建控件。
另外不要在WndProc里面定义static变量或者访问全局变量,因为 ...
对的,这个InputBox是只支持单线程使用的。。。顺带问下,在WM_CREATE里创建控件有啥好处? 在消息循环里创建控件 方便InputBox模块化 方便移植 支持更多的属性 Ayala 发表于 2017-8-3 10:07
在消息循环里创建控件 方便InputBox模块化 方便移植 支持更多的属性
学习了。谢谢。 美俪女神 发表于 2017-8-3 09:43
对的,这个InputBox是只支持单线程使用的。。。顺带问下,在WM_CREATE里创建控件有啥好处? ...
从面向对象的角度来思考的话,WM_CREATE可以理解为你的窗口的构造函数。 学习一下。 :P 66666666666666666666666 来学习看看 我觉得最好像WinAPI那样外部定义CHAR或WCHAR数组,通过参数传缓冲区地址和长度给函数,InputBox函数内部又正好可以通过SendMessage发送EM_LIMITTEXT限制Edit控件的最大输入长度等于缓冲区大小(避免缓冲区越界访问),缓冲区数组可以设计成双向参数(初始显示缓冲区原来的旧文本,确定后把输入的新文本覆盖进去)。 学习一下 学习下:lol 所以有最终形态的代码吗 想学习
页:
[1]