當前位置:編程學習大全網 - 編程語言 - 如何用C語言完成“網絡協議分析”的“圖形界面”編程?

如何用C語言完成“網絡協議分析”的“圖形界面”編程?

下面的代碼是徹底的C語言,加上Windows?API?函數,沒有任何C++語言組件,在Visual?C++?6.0已通過測試,可以出現常規的Windows窗口。

#pragma?註釋(鏈接器,“/SUBSYSTEM:Windows/ENTRY:mainCRTStartup”)

#包含?& ltwindows.h & gt

/*?讓類名成為全局變量?*/

TCHAR?szClassName[?]?=?TEXT(" windows app ");

/*?這個函數由函數DispatchMessage()調用。*/

LRESULT?回調?窗口程序?(HWND?hWnd,?UINT?消息,?WPARAM?wParam,?LPARAM?lParam)

{

HDC?hdc?;

PAINTSTRUCT?ps?;

RECT?rect?;

切換?(消息)/*?處理信息?*/

{

案子?WM_DESTROY:

PostQuitMessage?(0);/*?將WM_QUIT發送到消息隊列?*/

打破;

案子?WM_PAINT:

hdc?=?開始畫畫?(hWnd,?& ampps)?;

GetClientRect?(hWnd,?& amprect)?;

DrawText?(hdc,?正文(“妳好,?Windows?NT!”),?-1,?& amprect,?DT_SINGLELINE?|?DT_CENTER?|?DT_VCENTER)?;

EndPaint?(hWnd,?& ampps)?;

決裂?;

默認:/*?未處理的消息?*/

回歸?DefWindowProc?(hWnd,?消息,?wParam,?lParam);

}

回歸?0;

}

/*?以下是主要功能?*/

int?主要?(?作廢?) ?

{

HINSTANCE?hThisInstance?=?GetModuleHandle(NULL)?;

int?nFunsterStil?=?SW_SHOW?;

HWND?hWnd?/*?這是窗戶的把手嗎?*/

味精?消息;/*?應用程序的消息保存在這裏?*/

WNDCLASSEX?wincl/*?窗口類的數據結構。*/

/*?窗口結構?*/

wincl.hInstance?=?hThisInstance

wincl.lpszClassName?=?szClassName

wincl.lpfnWndProc?=?windows procedure;/*?這個函數由Windows操作系統調用。*/

wincl.style?=?CS _ DBLCLKS?/*?獲取雙擊命令?*/

wincl.cbSize?=?sizeof?(WNDCLASSEX);

/*?使用默認圖標和鼠標指針?*/

wincl.hIcon?=?LoadIcon?(NULL,?IDI _應用);

wincl.hIconSm?=?LoadIcon?(NULL,?IDI _應用);

wincl.hCursor?=?LoadCursor?(NULL,?IDC _ ARROW);

wincl.lpszMenuName?=?NULL?/*?沒有菜單?*/

wincl.cbClsExtra?=?0;/*?窗口類後沒有多余的字節。*/

wincl.cbWndExtra?=?0;/*?結構還是窗口實例?*/

/*?使用窗口的默認顏色作為窗口的背景顏色?*/

wincl.hbrBackground?=?(HBRUSH)?顏色_背景;

/*?註冊窗口類。如果註冊失敗,那麽退出程序?*/

如果?(!RegisterClassEx?(& ampwincl))

回歸?0;

/*?窗口類已經註冊。創造它的程序?*/

hWnd?=?CreateWindowEx?(

0,

szClassName,/*?班名?*/

TEXT("Windows?App”),/*?窗口標題欄的文本?*/

WS_OVERLAPPEDWINDOW,?/*?默認窗口?*/

CW_USEDEFAULT,?/*?窗戶的左上角在哪裏?*/

CW_USEDEFAULT,?/*?窗戶的右下角在哪裏?*/

544,?/*?窗口寬度(像素)?*/

375,?/*?窗口高度(像素)?*/

HWND_DESKTOP,/*?窗口是桌面的子窗口嗎?*/

NULL,/*?這個窗口沒有菜單?*/

hThisInstance,?/*?程序實例的句柄?*/

NULL?/*?窗口沒有創建數據?*/

);

/*?顯示窗口?*/

櫥窗?(hWnd,?nFunsterStil);

/*?重新粉刷窗戶?*/

更新窗口(hWnd);

/*?運行消息循環。循環到GetMessage()函數並返回0?*/

什麽時候?(GetMessage?(& amp消息?NULL,?0,?0))

{

/*?把虛擬信息翻譯成人物信息?*/

翻譯消息(& amp消息);

/*?向窗口發送信息過程?*/

dispatch message(amp;消息);

}

/*?返回PostQuitMessage()函數的返回值?*/

回歸?messages.wParam

}

  • 上一篇:plc工程師前途
  • 下一篇:如何搭建android studio開發環境
  • copyright 2024編程學習大全網