求助!关于用API创建无边框窗口的问题
以下是我的代码:
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon=LoadIcon(NULL,NULL);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WndProc;
wndcls.lpszClassName="XPoptimize";
wndcls.lpszMenuName=NULL;
wndcls.style=NULL;
RegisterClass(&wndcls);
RECT WndRect;
WndRect.left=0;WndRect.top=0;
WndRect.right=650;WndRect.bottom=500;
AdjustWindowRectEx(&WndRect,0,false,NULL);
HWND hwnd=CreateWindow("XPoptimize",NULL,0,0,0,WndRect.right-WndRect.left,WndRect.bottom-WndRect.top,NULL,NULL,hInstance,NULL);
SetWindowLong(hwnd,GWL_STYLE,WS_CLIPCHILDREN|WS_CLIPSIBLINGS|WS_POPUP);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_DESTROY:
PostQuitMessage(NULL);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
这样是可以创建出一个无边框窗口来,可是效果不稳定,当我调用SetWindowPos改变它的位置时,边框就会显出边框来.
右建单击它在任务栏里的托盘边框也会显出来。
该怎样解决?
或有更好的方法创建无边框窗口吗?
求高手回答!