說句沒用的?
這不是純C加上API嗎?
整個源程序能讓我看見C++影子的只有bool,
樓主為什麽讓C++高手進?
好了,開始解答:
#include<windows.h>#include<stdlib.h>
#include<string.h>
//聲明消息處理函數
long?WINAPI?WndProc(HWND?hWnd,UINT?iMessage,UINT?wParam,LONG?lParam);
//聲明初始化窗口類
BOOL?InitWindowsClass(HINSTANCE?hInstance);
//聲明初始化窗口
BOOL?InitWindows(HINSTANCE?hInstance,int?nCmdShow);
HWND?hWndMain;
//定義窗口句柄
int?WINAPI?WinMain(HINSTANCE?hInstance,HINSTANCE?hPrevInstance,LPSTR?lpCmdLine,int?nCmdShow)
{
MSG?Message;
if(!InitWindowsClass(hInstance))//初始化窗口類
return?FALSE;
if(!InitWindows(hInstance,nCmdShow))//初始化窗口
return?FALSE;
while(GetMessage(&Message,0,0,0))//消息循環
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return?Message.wParam?;
}
long?WINAPI?WndProc(HWND?hWnd,UINT?iMessage,UINT?wParam,LONG?lParam)
{
switch(iMessage)//處理窗口消息
{
case?WM_CREATE://窗口創建消息
break;
case?WM_PAINT://重繪窗口消息
break;
case?WM_DESTROY://撤銷窗口消息
PostQuitMessage(0);
return?0;
default://默認消息
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
return?0;
}
BOOL?InitWindows(HINSTANCE?hInstance,int?nCmdShow)
{
HWND?hWnd;
hWnd=CreateWindow("LPX",//窗口類名稱
"Windows?API實例"?,//標題欄實例
WS_OVERLAPPEDWINDOW,?//窗口樣式
CW_USEDEFAULT,//窗口左上角坐標
0,
CW_USEDEFAULT,//采用默認高度寬度
0,
NULL,?//無父菜單
NULL,?//無菜單
hInstance,?//當前應用實例句柄
NULL);?//指向傳遞給窗口的參數指針
if(!hWnd)?//如果創建失敗
return?FALSE;?
hWndMain=hWnd;//全局窗口句柄賦值
ShowWindow(hWnd,nCmdShow);//顯示窗口
UpdateWindow(hWnd);//刷新窗口
return?TRUE;}
BOOL?InitWindowsClass(HINSTANCE?hInstance)
{
WNDCLASS?WndClass;
WndClass.cbClsExtra=0;//無窗口擴展類
WndClass.cbWndExtra=0;//無窗口實例擴展
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));//背景白色
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);//箭頭光標
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//默認圖標
WndClass.hInstance=hInstance;//當前實例
WndClass.lpfnWndProc=WndProc;//消息處理函數
WndClass.lpszClassName="LPX";//窗口類名稱
WndClass.lpszMenuName=NULL;//無菜單
WndClass.style=0;//默認窗口風格
return?RegisterClass(&WndClass);//返回窗口註冊值
}
想必樓主看了我的代碼應該就明白了吧,
妳的兩個自定義函數的名字重復了,
鏈接階段報錯!!
我把第二個函數(設置窗口類別的那個函數)改為InitWindowsClass了
直接就沒問題了
這個貌似是深入淺出MFC中的例子吧,
呵呵,加油吧
滿意請采納,不滿意請追問