C语言从main函数创建windows程序
- 格式:docx
- 大小:12.44 KB
- 文档页数:4
C语言从main函数创建windows程序
#include
#include
#include "resource.h"
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow ();
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
HWND hwnd;
HINSTANCE hInstance;
void main(){
hwnd=GetConsoleWindow();
hInstance=GetModuleHandle(NULL);
HWND hdlg = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN),hwnd,(DLGPROC)DlgP roc);
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON)));
if(!hdlg)
{
return;
}
ShowWindow(hdlg,SW_SHOW);
UpdateWindow(hdlg);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInstance,
MAKEINTRESOURCE(IDI_ICON)));
return 0;
case WM_SYSCOMMAND:
if(wParam == SC_CLOSE)
{
PostQuitMessage(0);//退出
}
return 0;
case WM_COMMAND:{
switch(LOWORD(wParam))
{
case IDC_Exit:{
MessageBox(hDlg,"Hello World","",MB_OK);
PostQuitMessage(0);//退出
}
break;
}
}
}
return (INT_PTR)FALSE;
}