生成有控制台的WIN32程序

非常简单,创建一个控制台程序,然后手动显示窗口即可。
main.cpp

#include 
#include 
#include "resource.h"

BOOL CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

int main()
{	
	HINSTANCE hInstance = GetModuleHandle(NULL);
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG_MAIN), NULL, DialogProc);
	return 0;
}

// 对话框窗口过程
BOOL CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_INITDIALOG:
		printf("对话框创建成功!\n");
		return TRUE;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDC_BUTTON_OK:
			MessageBox(NULL, TEXT("OK"), TEXT("OK"), MB_OK);
			return TRUE;
		case IDC_BUTTON_CANCEL:
			MessageBox(NULL, TEXT("CANCEL"), TEXT("CANCEL"), MB_OK);
			EndDialog(hDlg, 0);
			return TRUE;
		}
		return TRUE;
	case WM_CLOSE:
		EndDialog(hDlg, 0);
		return TRUE;
	}
	return FALSE;
}

resource.cpp

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 Resource.rc 使用
//
#define IDD_DIALOG_MAIN                 101
#define IDC_BUTTON_OK                   1001
#define IDC_BUTTON_CANCEL               1002

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        103
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1003
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

运行结果
生成有控制台的WIN32程序_第1张图片

你可能感兴趣的:(Windows)