您的位置:首页 > 移动开发

VC 控制台程序创建hwnd的方法

2011-08-25 21:24 239 查看
#include <stdio.h>

#include <wtypes.h>

#include <string.h>
//extern
HINSTANCE hookInst;

static LRESULT   CALLBACK WndProc(HWND   hWnd,   UINT   message,WPARAM   wParam,   LPARAM   lParam)
{
switch (message)
{
default:
DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

HWND CreateWnd()
{
WNDCLASSEX   wc;
HWND   tmp;
static BOOL reg = FALSE;

wc.cbSize   =   sizeof(WNDCLASSEX);
wc.style   =   CS_HREDRAW   |   CS_VREDRAW;
wc.lpfnWndProc   =   (WNDPROC)WndProc;
wc.hInstance   =   hookInst;
wc.hCursor   =   LoadCursor(NULL,   IDC_ARROW);
wc.hbrBackground   =   (HBRUSH)COLOR_WINDOW;
wc.lpszClassName   =   "AnyWnd";
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.lpszMenuName = "Menu";
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if (!reg)
{
if (!RegisterClassEx(&wc))
{
DWORD err = GetLastError();
return NULL;
}
}

reg = TRUE;

tmp   =   CreateWindowEx(NULL,"AnyWnd","",
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,NULL,NULL,hookInst,NULL);
return tmp;
}

DWORD WINAPI MessageLoop(LPVOID pParam)
{
MSG msg;
HWND hWnd;
hWnd = CreateWnd();
while (GetMessage(&msg, hWnd, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息