引言
之前KMU-Counter中也用到了,但是最近在制作安装包时又遇到了这个,记录一下吧。
内容
比如说目录结构是这样的,以windows api窗口为例:
- main.cpp
- framework.h
- framework.cpp
- config.h
- config.cpp
比如说我有一个当前窗口位置的变量,其中main中的WndProc中的消息,存在WM_MOVE和WM_SIZE,标识窗口移动和尺寸改变。部分代码如下。
其中window_position可以定义成一个全局变量,供framework和main使用,config.h
config.h
extern int window_position[4];
config.cpp
int window_position[4] = {9527, 114514, 640, 480}; // 这里的顺序是左边,定边,宽度,高度,这里随便定义的。
main.cpp
case WM_MOVE:
window_position[0] = LOWORD(lParam);
window_position[1] = HIWORD(lParam);
break;
case WM_SIZE:
window_position[2] = LOWORD(lParam);
window_position[3] = HIWORD(lParam);
break;
framework.cpp
#include "config.h" // 这里引入这个头文件
SetWindowPos(hwnd, NULL, window_position[0], window_position[1], window_position[2], window_position[3], SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_FRAMECHANGED); // 移动窗口到这个位置。
结语
这玩意儿还是得多积累,现在这个时代学习成本降低了,因为存在GPT等AI,更方便学习和查错。



case WM_MOVE:
window_position[0] = LOWORD(lParam);
window_position[1] = HIWORD(lParam);
break;
case WM_SIZE:
window_position[2] = LOWORD(lParam);
window_position[3] = HIWORD(lParam);
break;
进行了修改全局变量windows_position