【发布时间】:2011-04-02 05:18:13
【问题描述】:
如何使用 CreateWindowEx() 创建一个没有标题和边框的窗口?我为什么要使用'|' OR 运算符来组合样式而不是 '&' 和?
【问题讨论】:
标签: winapi
如何使用 CreateWindowEx() 创建一个没有标题和边框的窗口?我为什么要使用'|' OR 运算符来组合样式而不是 '&' 和?
【问题讨论】:
标签: winapi
int WINAPI WinMain(....)
{
MSG msg;
WNDCLASS wc={0};
wc.lpszClassName="MyClass";
wc.lpfnWndProc=DefWindowProc;//You MUST use your own wndproc here
wc.hInstance=hInstance;
wc.hbrBackground=(HBRUSH)(COLOR_3DFACE+1);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
if (!RegisterClass(&wc)) {/*Handle Error*/}
HWND hwnd;
hwnd=CreateWindowEx(0,wc.lpszClassName,0,WS_POPUP|WS_VISIBLE|WS_SYSMENU,9,9,99,99,0,0,0,0);
if (!hwnd) {/*Handle Error*/}
while(GetMessage(&msg,0,0,0)>0)DispatchMessage(&msg);
return 0;
}
如果需要边框,可以添加 WS_BORDER 或 WS_DLGFRAME(不能同时添加)。如果不想在任务栏中显示窗口,请添加 WS_EX_TOOLWINDOW 扩展样式。
关于为什么你需要按位或样式; OR 将组合所有样式值,AND 用于(由窗口)检查设置了哪些样式。 假设我们有两种样式(WS_FOO=1,WS_BAR=2):
请参阅wikipedia 了解更多信息。
【讨论】: