Win32 开发记录
Typedefs
LPCSTR = char*
LPCWSTR = wchar_t*
Webpages
Control reference: https://docs.microsoft.com/en-us/windows/win32/controls/individual-control-info
Notes
ShowWindowEx的Class和Name在Win32下面默认要求LPCSTR,DLL开发下面默认要求LPCWSTR,显然这样写出来的 DLL 是没法用的,在Win32应用的第一行加上#define UNICODE。LRESULT CALLBACK (*)(HWND, UINT, WPARAM, LPARAM)函数指针可以直接用WNDPROC- 可以在 DLL 里用
GetModuleHandle(NULL)获得一个HINSTANCE对象,在 DLL 里实现回调,这样与外部交互时除了HWND就没有什么Win32类型了。 Cl exited with return code 2: 切换成Release看报错。DbgView应该是弃用了,抓不到调试信息了。
Topics
按钮嵌套问题
见此文章。
文本框重绘问题
通过 MoveWindow 对文本框进行缩短一行高度(自行实现)的操作后,出现图示问题。此问题仅在嵌套于按钮中时出现。

通过 ShowWindow 的 SW_MAXIMIZE + SW_SHOW 组合
可行,造成闪烁问题,推测由于重绘区域过大。发 WM_SETREDRAW 暂时停用重绘并没有太大作用(注意这个消息会强制使接受的窗口变为可见,即加上 WS_VISIBLE 的 Style)。
计算脏区域
可见脏区域就是多出来的那一行高度,前后 GetWindowRect 并映射到窗口坐标重绘即可。
注意这里 RedrawWindow 所使用的句柄必须是通常意义上的窗口句柄,不知道为什么,也许窗口绘制实现更好(。
无特别声明的情况下,本文为原创文章,允许转载,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
在声明禁止转载的情况下,请勿转载;若本文章为转载的文章,版权归原作者所有。
如果您觉得本文写得好,请点击下方的推荐按钮~若您有任何建议和指正,请在下方留言,对于您的指正将不胜感激。
在声明禁止转载的情况下,请勿转载;若本文章为转载的文章,版权归原作者所有。
如果您觉得本文写得好,请点击下方的推荐按钮~若您有任何建议和指正,请在下方留言,对于您的指正将不胜感激。

浙公网安备 33010602011771号