#pragma comment(lib,"user32.lib")
#pragma comment(lib,"Gdi32.lib")
LRESULT CALLBACK WndProc(
HWND hwnd
,UINT message
,WPARAM wParam
,LPARAM lParam
);
HWND hWnd;//窗口句柄,定義為全局
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG msg;
WNDCLASS wnd;
wnd.style = 0;
wnd.cbClsExtra = 0;//應該0
wnd.cbWndExtra = 0;//均為0
wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景填充顏色
wnd.hCursor = LoadCursor(NULL,IDC_ARROW);//光標,使用默認光標參數壹為NULL
wnd.hIcon = LoadIcon(NULL,IDI_EXCLAMATION);//圖標
wnd.hInstance = hInstance;//句柄
wnd.lpfnWndProc = WndProc;//消息處理
wnd.lpszClassName = "XP";//類名
wnd.lpszMenuName = NULL;//菜單名
RegisterClass(&wnd);//註冊
hWnd = CreateWindow("XP","窗口",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hInstance,NULL);//創建窗口,參考MSDN
ShowWindow(hWnd,SW_SHOWNORMAL);//顯示
UpdateWindow(hWnd);//更新窗口
while(GetMessage(&msg,NULL,0,0))
{//消息循環
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
/*LRESULT CALLBACK WindowProc(HWND hwhd,uMsg,WPARAM wParam,LPARAM IParam)
消息響應函數定義
hwnd:指向窗口的句柄。
uMsg:指定消息類型。
wParam:消息
IParam:消息*/
LRESULT CALLBACK WndProc(
HWND hwnd
,UINT message
,WPARAM wParam
,LPARAM lParam
)
{
switch(message)
{
case WM_CLOSE://關閉
if(MessageBox(hWnd,"是否退出","詢問",MB_YESNO)==IDYES)//使用全局消息框
PostQuitMessage(0);//將WM_QUIT加入消息隊列中
break;
case WM_KEYDOWN://鍵盤按下,壹種消息類型,MFC會更全
switch(wParam)
{
case VK_UP:
MessageBox(hWnd,"上","按下",MB_OK);
case VK_RBUTTON:
MessageBox(hWnd,"鼠標右鍵","按下",MB_OK);
break;
case VK_MENU:
MessageBox(hWnd,"Alt","按下",MB_OK);
break;
case VK_END:
MessageBox(hWnd,"END","按下",MB_OK);
break;
case VK_LEFT:
MessageBox(hWnd,"左","按下",MB_OK);
break;
case VK_RIGHT:
MessageBox(hWnd,"右","按下",MB_OK);
break;
case VK_DOWN:
MessageBox(hWnd,"下","按下",MB_OK);
break;
case VK_CONTROL:
MessageBox(hWnd,"Ctrl","按下",MB_OK);
break;
case VK_ESCAPE:
MessageBox(hWnd,"Esc","按下",MB_OK);
// PostQuitMessage(0);
break;
case VK_SHIFT:
MessageBox(hWnd,"SHIFT","按下",MB_OK);
break;
default: break;
}
default:
return DefWindowProc(hwnd,message,wParam,lParam);//缺省處理
}
return(0);
}
沒有外部定義.......
MFC是標準的win32 Application文件
DLL為動態鏈接庫Library,
連接文件
可以使用類進行封裝窗口創建
MFC也是如此
可以加入afxwin.h頭文件 對mfc庫的調用
C++的半面向對象的思想mfc對基本數據也有所封裝,
若果沒有C基礎,對其不熟悉,可能會進展不順
對於壹些函數傳參不了,可以參考MSDN