當前位置:編程學習大全網 - 編程語言 - 如何用C語言寫壹個圖形界面

如何用C語言寫壹個圖形界面

密碼

# include & ltwindows.h & gt

LRESULT回調WndProc( HWND,UINT,WPARAM,LPARAM);//聲明用於處理消息的函數。

int WINAPI WinMain(h instance h instance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)

{

靜態TCHAR szapname[]= TEXT(" my window ");

HWND hwnd

味精味精;

WNDCLASS wndclass//聲明壹個窗口類對象

//下面是窗口類對象wndclass的屬性。

wnd class . style = CS _ HREDRAW | CS _ VREDRAW;//窗口樣式

wnd class . lpszclassname = SZ appname;?//窗口類名

wndclass.lpszMenuName = NULL//窗口菜單:無

wnd class . HBR background =(HBRUSH)GetStockObject(WHITE _ BRUSH);//窗口背景顏色

wndclass.lpfnWndProc = WndProc?//窗口處理功能

wnd class . cbwndextra = 0;?//窗口實例擴展:無

wnd class . cbclsextra = 0;?//窗口類擴展:無

wnd class . h instance = h instance;?//窗口實例句柄

wndclass.hIcon = LoadIcon( NULL,IDI _應用);?//窗口最小化圖標:使用默認圖標。

wnd class . hcursor = load cursor(NULL,IDC _ ARROW);//窗口使用箭頭光標。

如果(!register class(& amp;wndclass))

{//註冊窗口類,註冊失敗會彈出錯誤提示。

MessageBox( NULL,TEXT("窗口註冊失敗!") )、TEXT ("error ")、MB _ OK | MB _ icon error);

返回0;

}

hwnd = CreateWindow(?//創建壹個窗口

SzAppName,//窗口類名

TEXT("我的窗口"),?//窗口標題

WS_OVERLAPPEDWINDOW,?//窗口的樣式

CW_USEDEFAULT,//窗口X的初始顯示位置:使用默認值。

CW_USEDEFAULT,//窗口y的初始顯示位置:使用默認值。

CW_USEDEFAULT,//窗口寬度:使用默認值。

CW_USEDEFAULT,//窗口高度:使用默認值。

NULL,?//父窗口:無

NULL,?//子菜單:無

HInstance,//這個窗口應用的實例句柄?

NULL?//

) ;

ShowWindow( hwnd,icmd show);//顯示窗口

更新窗口(hwnd);//更新窗口

while(GetMessage(& amp;Msg,NULL,0,0)) //從消息隊列中獲取消息。

{

翻譯消息(& amp味精);//將虛擬按鍵消息轉換為字符消息

dispatch message(amp;味精);?//分發給回調函數(過程函數)

}

返回msg.wParam

}

LRESULT回調WndProc( HWND hwnd,UINT消息,WPARAM wParam,LPARAM lParam)

{

HDC hdc//設備環境句柄

PAINTSTRUCT ps//繪制結構

RECT矩形;?//矩形結構

Switch( message) //處理得到的消息。

{

案例WM_CREATE:?//創建窗口時發送的消息。

MessageBox( hwnd,TEXT("窗口已創建!") )、TEXT("我的窗口")、MB _ OK | MB _ icon information);

返回0;

案例WM_PAINT:?//處理窗口區域無效時發送的消息。

hdc = begin paint(hwnd & amp;PS);

GetClientRect(hwnd & amp;rect);

DrawText( hdc,Text("妳好,微伴科技!") ),-1,& amprect,DT _ single line | DT _ CENTER | DT _ VCENTER);

面漆(hwnd & amp;PS);

返回0;

Case WM_LBUTTONDOWN: //處理鼠標左鍵被按下的消息。

MessageBox( hwnd,TEXT("鼠標左鍵被按下。")、TEXT ("click ")、MB _ OK | MB _ icon information);

返回0;

Case WM_DESTROY: //處理窗口關閉時的消息。

MessageBox( hwnd,TEXT("關閉程序!")、TEXT ("end ")、MB _ OK | MB _ icon information);

PostQuitMessage(0);

返回0;

}

返回DefWindowProc( hwnd,message,wParam,lParam);//DefWindowProc處理不是由我們的自定義消息處理程序處理的消息。

}

  • 上一篇:什麽是匯編語言?什麽叫指令周期?
  • 下一篇:vb中如何給listbox(列表框)添加編號
  • copyright 2024編程學習大全網