當前位置:編程學習大全網 - 編程語言 - 編程代碼窗口

編程代碼窗口

///////////////////////////////////////////////////////////////

// 04FirstWindow.cpp文件

# include & ltstdio.h & gt

#包含" stdafx.h "

//窗口函數的函數原型

LRESULT回調MainWndProc(HWND,UINT,WPARAM,LPARAM);

int API entry WinMain(h instance h instance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

char SZ class name[]= " mainw class ";

WNDCLASSEX wndclass

//用描述主窗口的參數填充WNDCLASSEX結構。

wnd class . CB size = sizeof(wnd class);//結構的大小

wnd class . style = CS _ HREDRAW | CS _ VREDRAW;//指定在大小改變時重新繪制。

wnd class . lpfnwndproc = MainWndProc;//窗口函數指針

wnd class . cbclsextra = 0;//沒有額外的類內存。

wnd class . cbwndextra = 0;//沒有額外的窗口內存。

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

wndclass.hIcon = ::LoadIcon(NULL,

IDI _應用);//使用預定義的圖標

wnd class . hcursor =::load cursor(NULL,

IDC _ ARROW);//使用預定義的光標

wndclass.hbrBackground = (HBRUSH)

* GetStockObject(WHITE _ BRUSH);//使用白色背景筆刷。

wndclass.lpszMenuName = NULL//不要指定菜單

wnd class . lpsz class name = SZ class name;//窗口類的名稱

wnd class . hi consm = NULL;//沒有類的小圖標

//註冊這個窗口類。

* register classex(& amp;wnd class);

//創建主窗口

HWND hwnd = ::CreateWindowEx(

0,//dwex樣式,擴展樣式

SzClassName,// lpClassName,類名

“我的第壹扇窗!”,//lpwindowname,title

Ws _ overlapped window,//dwstyle,窗口樣式。

CW _ CW_USEDEFAULT,// X,初始X坐標

CW _ CW_USEDEFAULT,// Y,初始Y坐標

CW _ CW_USEDEFAULT,// nWidth,Width

CW _ CW_USEDEFAULT,// nHeight,Height

Null,//hwndparent,父窗口句柄。

Null,//hmenu,菜單句柄

HInstance,//HL instance,程序實例句柄

NULL);// lpParam,用戶數據

if(hwnd == NULL)

{

MessageBox(空,"創建窗口時出錯!",“錯誤”,MB _ OK);

return-1;

}

//顯示窗口,刷新窗口的客戶區。

*櫥窗(hwnd、nCmdShow);

*更新窗口(hwnd);

//從消息堆中取出消息

味精味精;

while(::GetMessage(& amp;msg,NULL,0,0))

{

//轉換鍵盤消息

*翻譯消息(& amp味精);

//將消息發送給相應的窗口函數。

* dispatch message(& amp;味精);

}

//當GetMessage返回0時程序結束。

返回msg.wParam

}

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

{

Char szText[] = "最簡單的窗口程序!";

開關(消息)

{

案例WM_PAINT: //窗口的客戶區需要重畫。

{

HDC hdc

PAINTSTRUCT ps

//使無效的客戶區有效,並獲取設備環境句柄。

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

//顯示文本

* TextOut(hdc,10,10,szText,strlen(SZ text));

*面漆(hwnd & amp;PS);

返回0;

}

案例WM_CHAR:

{

char szChar[20];

sprintf(szChar," Char是%d ",wParam);

MessageBox(hwnd,szChar,“Windows”,MB _ OK);

打破;

}

案例WM_LBUTTONDOWN:

{

MessageBox(hwnd,“鼠標被點擊”,“消息”,0);

HDC hdc

hdc = GetDC(hwnd);

TextOut(hdc,0,50,“Windows程序”,strlen(“Windows程序”));

ReleaseDC(hwnd,hdc);

打破;

}

案例WM_CLOSE:

If(IDYES==MessageBox(hwnd,“是否要退出程序?”,“Windows”,MB_YESNO))

{

銷毀窗口(hwnd);

}

案例WM_DESTROY: //銷毀窗口。

//向消息隊列發布WM_QUIT消息,提示GetMessage函數返回0,結束消息循環。

PostQuitMessage(0);

返回0;

}

//把我們不處理的消息交給系統默認處理。

return ::DefWindowProc(hwnd,message,wParam,lParam);

}

  • 上一篇:卡西歐9860計算器能否編程?
  • 下一篇:yh線切割能讀3b代碼嗎?知道的說下,謝謝。
  • copyright 2024編程學習大全網