當前位置:首頁 » 編程語言 » c語言如何做軟體界面圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何做軟體界面圖

發布時間: 2022-04-13 18:42:38

『壹』 求高手幫忙如何給一個c語言編寫軟體的圖形界面

#include<windows.h>

HANDLEhOut;

voidShadowWindowLine(char*str);//在具有陰影效果的窗口中顯示一行字元,窗口為居中顯示

voidDrawBox(boolbSingle,SMALL_RECTrc);//繪制邊框

voidmain()

{

hOut=GetStdHandle(STD_OUTPUT_HANDLE);//獲取標准輸出設備句柄

SetConsoleOutputCP(437);//設置代碼頁

ShadowWindowLine("Displayalineofwords,andcenterthewindowwithshadow.");

CloseHandle(hOut);//關閉標准輸出設備句柄

}

voidShadowWindowLine(char*str)

{

CONSOLE_SCREEN_BUFFER_INFObInfo;//窗口緩沖區信息

GetConsoleScreenBufferInfo(hOut,&bInfo);//獲取窗口緩沖區信息

//計算顯示窗口大小和位置

intx1,y1,x2,y2,chNum=strlen(str);

x1=(bInfo.dwSize.X-chNum)/2-2;

y1=bInfo.dwSize.Y/2-2;

x2=x1+chNum+4;

y2=y1+5;

WORDatt1=BACKGROUND_INTENSITY;//陰影屬性

WORDatt0=FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|

BACKGROUND_RED|BACKGROUND_BLUE;//文本屬性

WORDattText=FOREGROUND_RED|FOREGROUND_INTENSITY;//文本屬性

//設置陰影

COORDposShadow={x1+1,y1+1},posText={x1,y1};

for(inti=0;i<5;i++)

{

FillConsoleOutputAttribute(hOut,att1,chNum+4,posShadow,NULL);

posShadow.Y++;

}

//填充窗口背景

for(i=0;i<5;i++)

{

FillConsoleOutputAttribute(hOut,att0,chNum+4,posText,NULL);

posText.Y++;

}

//寫文本和邊框

posText.X=x1+2;

posText.Y=y1+2;

WriteConsoleOutputCharacter(hOut,str,strlen(str),posText,NULL);

SMALL_RECTrc={x1,y1,x2-1,y2-1};

DrawBox(true,rc);

SetConsoleTextAttribute(hOut,bInfo.wAttributes);//恢復原來的屬性

}

voidDrawBox(boolbSingle,SMALL_RECTrc)

{

charchBox[6];

if(bSingle)

{

chBox[0]=(char)0xda;//左上角點

chBox[1]=(char)0xbf;//右上角點

chBox[2]=(char)0xc0;//左下角點

chBox[3]=(char)0xd9;//右下角點

chBox[4]=(char)0xc4;//水平

chBox[5]=(char)0xb3;//堅直

}

else

{

chBox[0]=(char)0xc9;//左上角點

chBox[1]=(char)0xbb;//右上角點

chBox[2]=(char)0xc8;//左下角點

chBox[3]=(char)0xbc;//右下角點

chBox[4]=(char)0xcd;//水平

chBox[5]=(char)0xba;//堅直

}

COORDpos={rc.Left,rc.Top};

WriteConsoleOutputCharacter(hOut,&chBox[0],1,pos,NULL);

for(pos.X=rc.Left+1;pos.X<rc.Right;pos.X++)

WriteConsoleOutputCharacter(hOut,&chBox[4],1,pos,NULL);

pos.X=rc.Right;

WriteConsoleOutputCharacter(hOut,&chBox[1],1,pos,NULL);

for(pos.Y=rc.Top+1;pos.Y<rc.Bottom;pos.Y++)

{

pos.X=rc.Left;

WriteConsoleOutputCharacter(hOut,&chBox[5],1,pos,NULL);

pos.X=rc.Right;

WriteConsoleOutputCharacter(hOut,&chBox[5],1,pos,NULL);

}

pos.X=rc.Left;pos.Y=rc.Bottom;

WriteConsoleOutputCharacter(hOut,&chBox[2],1,pos,NULL);

for(pos.X=rc.Left+1;pos.X<rc.Right;pos.X++)

WriteConsoleOutputCharacter(hOut,&chBox[4],1,pos,NULL);

pos.X=rc.Right;

WriteConsoleOutputCharacter(hOut,&chBox[3],1,pos,NULL);

}

『貳』 怎樣用c語言做個最簡單的軟體界面來呢看看這段代碼

//用windows最基本的api寫的,還有很多方法可以做界面
#include<windows.h>
LRESULT CALLBACK WndProc(HWND ,UINT ,WPARAM ,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
WNDCLASS wndclass;
static TCHAR szClassname[]=TEXT("weigua");
MSG msg;
HWND hwnd;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_CROSS);
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WndProc;
wndclass.lpszClassName=szClassname;
wndclass.lpszMenuName=NULL;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("RegisterClass!"),TEXT("ERROR"),MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szClassname,TEXT("Fu"),WS_OVERLAPPEDWINDOW,0,0,200,200,NULL,NULL,hInstance,NULL);
UpdateWindow(hwnd);
ShowWindow(hwnd,nShowCmd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}

『叄』 C語言開發的軟體界面怎麼設計的啊

調用win32函數,很多api函數可以調用,包括窗口的顯示等等

『肆』 怎麼用c語言做一個界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:從這里開始執行*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}

『伍』 在用C語言如何編寫軟體界面例如windows xp中的計算器工具一樣。需要用到哪些知識

要是用C語言來寫計算器那樣的軟體的話,最起碼你要懂windows API函數,要對windows消息機制有一定的了解,要是用純C語言來寫的話,我想你在一年類也很難寫出來,但是如果用像E語言或者VC或者BCB的話,可能很塊開發出來,但是呢VC是比較難學的,意思也就說是C不適合來開發那種界面軟體!
如果你對C語言的語法已經比較熟悉了的話,可以去看看WINDOWS程序設計,但那本書不是一般的難了解,剛好我也在看那本書,有興趣的話,可以交流下~ 網路HI我!
這是我今天寫的一個最簡單的求兩數之和的計算器,代碼你看下~
#include "windows.h"
#include "resource.h"
BOOL CALLBACK DialogMain(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
TCHAR MyDialogNAME[]="MyDialog";
DialogBox(hInstance,"MyDialog",NULL,DialogMain);
return 0;
}
BOOL CALLBACK DialogMain(HWND hdwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
TCHAR str[]="";
TCHAR str1[]="";
TCHAR str2[]="";
switch (message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_END:
EndDialog(hdwnd,0);
return 1;
case IDOK:
GetDlgItemText(hdwnd,IDC_EDIT1,str,80);
GetDlgItemText(hdwnd,IDC_EDIT2,str1,80);
int a=atoi(str);
int b=atoi(str1);
int c=a+b;
TCHAR str2[255];
wsprintf(str2,"%d",c);
SetDlgItemText(hdwnd,IDC_EDIT3,str2);
return 1;
}
return 1;
}
return 0;
}
你說就是計算兩數之和,就要這樣的代碼,你說更何況是windows自帶的計算機?

『陸』 學c語言如何做出有界面的程序

1、新建一個C項目,點擊文件,新建,項目,選擇C++Win32控制台應用。

『柒』 怎麼用c語言做一個界面

C 語言,就像他的名字一樣,他就是一門計算機編程語言;
要做界面,需要調用繪圖函數,而繪圖函數有很多種,Windows 的 GDI 和 GDI+ 或者 Direct2D,Linux 下的 OpenGL,移動設備上的 XNA ,都可以;
MFC 是微軟為咱們創建 Windows 窗體程序而設計好的開發包,可以提高開發效率,以面向對象的方式思考和設計程序,學習這個,需要有 Windows API 基礎;
至於 API,在 Windows 下面,就是指 Win32 API 了,就是 32 位 Windows 操作系統的應用程序編程介面,是 Windows 系統提供給開發者的底層功能;
這些都不是一兩句話可以概括的,需要自己多點去接觸,才會有自己的心得;

最後一條比喻不是很恰當,面向對象拆開來,可以是一堆 API,也可以是單純的一堆 C 語言句子,當然,也可以是一堆嵌入式匯編語句,所以沒辦法進行比喻;

『捌』 如何用C語言做一個windows應用程序窗口界面

  1. 可以使用CreateWindow函數。

    CreateWindow,Windows API宏, 在WinUser.h中根據是否已定義Unicode被分別定義為CreateWindowW和CreateWindowA,後兩者又被分別定義為對CreateWindowExW和CreateWindowExA函數的調用。
    函數原型:
    HWND CreateWindow(
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HANDLE hlnstance,
    LPVOID lpParam);
    參數:
    詳情
    lpClassName
    指向一個空結束的字元串或整型數atom。如果該參數是一個整型量,它是由此前調用theGlobalAddAtom函數產生的全局量。這個小於0xC000的16位數必須是lpClassName參數字的低16位,該參數的高位必須是0。
    如果lpClassName是一個字元串,它指定了窗口的類名。這個類名可以是任何用函數RegisterClass注冊的類名,或是任何預定義的控制類名。請看說明部分的列表。
    LPWindowName
    指向一個指定窗口名的空結束的字元串指針。
    如果窗口風格指定了標題條,由lpWindowName指向的窗口標題將顯示在標題條上。當使用Createwindow函數來創建控制例如按鈕,選擇框和靜態控制時,可使用lpWindowName來指定控制文本。
    dwStyle
    指定創建窗口的風格。該參數可以是下列窗口風格的組合再加上說明部分的控制風格。風格意義:
    WS_BORDER:創建一個帶邊框的窗口。
    WS_CAPTION:創建一個有標題框的窗口(包括WS_BORDER風格)。
    WS_CHILD:創建一個子窗口。這個風格不能與WS_POPUP風格合用。
    WS_CHILDWINDOW:與WS_CHILD相同。
    WS_CLIPCHILDREN:當在父窗口內繪圖時,排除子窗口區域。在創建父窗口時使用這個風格。
    WS_CLIPSIBLINGS:排除子窗口之間的相對區域,也就是,當一個特定的窗口接收到WM_PAINT消息時,WS_CLIPSIBLINGS 風格將所有層疊窗口排除在繪圖之外,只重繪指定的子窗口。如果未指定WS_CLIPSIBLINGS風格,並且子窗口是層疊的,則在重繪子窗口的客戶區時,就會重繪鄰近的子窗口。
    WS_DISABLED:創建一個初始狀態為禁止的子窗口。一個禁止狀態的窗口不能接受來自用戶的輸入信息。
    WS_DLGFRAME:創建一個帶對話框邊框風格的窗口。這種風格的窗口不能帶標題條。
    WS_GROUP:指定一組控制的第一個控制。這個控制組由第一個控制和隨後定義的控制組成,自第二個控制開始每個控制,具有WS_GROUP風格,每個組的第一個控制帶有WS_TABSTOP風格,從而使用戶可以在組間移動。用戶隨後可以使用游標在組內的控制間改變鍵盤焦點。
    WS_HSCROLL:創建一個有水平滾動條的窗口。
    WS_ICONIC:創建一個初始狀態為最小化狀態的窗口。與WS_MINIMIZE風格相同。
    WS_MAXIMIZE:創建一個初始狀態為最大化狀態的窗口。
    WS_MAXIMIZEBOX:創建一個具有最大化按鈕的窗口。該風格不能與WS_EX_CONTEXTHELP風格同時出現,同時必須指定WS_SYSMENU風格。
    WS_OVERLAPPED:產生一個層疊的窗口。一個層疊的窗口有一個標題條和一個邊框。與WS_TILED風格相同。
    WS_OVERLAPPEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口,與WS_TILEDWINDOW風格相同。
    WS_POPUP:創建一個彈出式窗口。該風格不能與WS_CHILD風格同時使用。
    WS_POPUPWINDOW:創建一個具有WS_BORDER,WS_POPUP,WS_SYSMENU風格的窗口,WS_CAPTION和WS_POPUPWINDOW必須同時設定才能使窗口某單可見。
    WS_SIZEBOX:創建一個可調邊框的窗口,與WS_THICKFRAME風格相同。
    WS_SYSMENU:創建一個在標題條上帶有窗口菜單的窗口,必須同時設定WS_CAPTION風格。
    WS_TABSTOP:創建一個控制,這個控制在用戶按下Tab鍵時可以獲得鍵盤焦點。按下Tab鍵後使鍵盤焦點轉移到下一具有WS_TABSTOP風格的控制。
    WS_THICKFRAME:創建一個具有可調邊框的窗口,與WS_SIZEBOX風格相同。
    WS_TILED:產生一個層疊的窗口。一個層疊的窗口有一個標題和一個邊框。與WS_OVERLAPPED風格相同。
    WS_TILEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口。與WS_OVERLAPPEDWINDOW風格相同。
    WS_VISIBLE:創建一個初始狀態為可見的窗口。
    WS_VSCROLL:創建一個有垂直滾動條的窗口。
    X
    指定窗口的初始水平位置。對一個層疊或彈出式窗口,X參數是屏幕坐標系的窗口的左上角的初始X坐標。對於子窗口,x是子窗口左上角相對父窗口客戶區左上角的初始X坐標。如果該參數被設為CW_USEDEFAULT則系統為窗口選擇預設的左上角坐標並忽略Y參數。CW_USEDEFAULT只對層疊窗口有效,如果為彈出式窗口或子窗口設定,則X和y參數被設為零。
    Y
    指定窗口的初始垂直位置。對一個層疊或彈出式窗口,y參數是屏幕坐標系的窗口的左上角的初始y坐標。對於子窗口,y是子窗口左上角相對父窗口客戶區左上角的初始y坐標。對於列表框,y是列表框客戶區左上角相對父窗口客戶區左上角的初始y坐標。如果層疊窗口是使用WS_VISIBLE風格位創建的並且X參數被設為CW_USEDEFAULT,則系統將忽略y參數。
    nWidth
    以設備單元指明窗口的寬度。對於層疊窗口,nWidth或是屏幕坐標的窗口寬度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,則系統為窗口選擇一個預設的高度和寬度:預設寬度為從初始X坐標開始到屏幕的右邊界,預設高度為從初始Y坐標開始到目標區域的頂部。CW_USEDEFAULT只對層疊窗口有效;如果為彈出式窗口和子窗口設定CW_USEDEFAULT標志則nWidth和nHeight被設為零。
    nHeight
    以設備單元指明窗口的高度。對於層疊窗口,nHeight是屏幕坐標的窗口寬度。若nWidth被設為CW_USEDEFAULT,則系統忽略nHeight參數。
    hWndParent
    指向被創建窗口的父窗口或所有者窗口的句柄。若要創建一個子窗口或一個被屬窗口,需提供一個有效的窗口句柄。這個參數對彈出式窗口是可選的。Windows NT 5.0;創建一個消息窗口,可以提供HWND_MESSAGE或提供一個己存在的消息窗口的句柄。
    hMenu
    菜單句柄,或依據窗口風格指明一個子窗口標識。對於層疊或彈出式窗口,hMenu指定窗口使用的菜單:如果使用了菜單類,則hMenu可以為NULL。對於子窗口,hMenu指定了該子窗口標識(一個整型量),一個對話框使用這個整型值將事件通知父類。應用程序確定子窗口標識,這個值對於相同父窗口的所有子窗口必須是唯一的。
    hlnstance
    與窗口相關聯的模塊實例的句柄。
    lpParam
    指向一個值的指針,該值傳遞給窗口WM_CREATE消息。該值通過在IParam參數中的CREATESTRUCT結構傳遞。如果應用程序調用CreateWindow創建一個MDI客戶窗口,則lpParam必須指向一個CLIENTCREATESTRUCT結構。
    返回值:如果函數成功,返回值為新窗口的句柄:如果函數失敗,返回值為NULL。若想獲得更多錯誤信息,請調用GetLastError函數。

  2. 常式:

    //Window.cpp:.
    #include<windows.h>
    LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);


    intAPIENTRYWinMain(HINSTANCEhInstance,//應用程序的實例句柄,
    HINSTANCEhPrevInstance,
    LPSTRlpCmdLine,//命令行
    intnCmdShow)//顯示方式
    {
    MSGmsg;
    HWNDhWnd;
    charszTitle[]="系統信息";//Thetitlebartext
    charszWindowClass[]="popMsg";//Thetitlebartext
    WNDCLASSEXwcex={0};
    wcex.cbSize=sizeof(WNDCLASSEX);//WNDCLASSEX結構體大小
    wcex.style=CS_HREDRAW|CS_VREDRAW;//位置改變時重繪
    wcex.lpfnWndProc=(WNDPROC)WndProc;//消息處理函數
    wcex.hInstance=0;//當前實例句柄
    wcex.hbrBackground=(HBRUSH)COLOR_WINDOWFRAME;//背景色
    wcex.lpszClassName=szWindowClass;//參窗口類名
    wcex.hIcon=0;//圖標
    wcex.hCursor=LoadCursor(NULL,IDC_ARROW);//游標
    wcex.lpszMenuName=0;//菜單名稱
    wcex.hIconSm=0;//最小化圖標
    RegisterClassEx(&wcex);//注冊窗口類

    hWnd=CreateWindow(szWindowClass,szTitle,WS_SYSMENU|WS_VISIBLE,//創建窗口
    CW_USEDEFAULT,CW_USEDEFAULT,400,300,NULL,NULL,0,NULL);
    if(!hWnd){
    returnFALSE;
    }

    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);

    while(GetMessage(&msg,NULL,0,0))//消息循環:
    {
    TranslateMessage(&msg);//轉化虛擬按鍵到字元消息
    DispatchMessage(&msg);//分派消息調用回調函數
    }
    returnmsg.wParam;
    }

    LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
    {
    PAINTSTRUCTps;
    HDChdc;
    RECTrect;
    switch(message)
    {
    caseWM_PAINT://重繪消息
    hdc=BeginPaint(hWnd,&ps);
    GetClientRect(hWnd,&rect);
    MoveToEx(hdc,10,10,0);
    SelectObject(hdc,::CreatePen(PS_SOLID,1,RGB(0xFF,0,0)));
    LineTo(hdc,100,200);
    //DrawText(hdc,szHello,strlen(szHello),&rt,DT_CENTER);
    EndPaint(hWnd,&ps);
    break;

    caseWM_CREATE:

    RegisterHotKey(hWnd,1,0,0x41);
    break;
    caseWM_HOTKEY:
    MessageBox(0,0,0,0);
    break;
    caseWM_TIMER:


    break;
    caseWM_DESTROY://窗口銷毀消息
    PostQuitMessage(0);
    break;
    default:
    returnDefWindowProc(hWnd,message,wParam,lParam);
    }
    return0;
    }

『玖』 C語言怎麼做界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息(很多人)都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:執行從這里開始*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*將發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}