C++ 如何在作为控制台启动的应用程序中创建窗口?

C++ 如何在作为控制台启动的应用程序中创建窗口?,c++,winapi,console,window,C++,Winapi,Console,Window,我知道当应用程序从一开始就打开一个窗口时,窗口的创建方式,也就是你调用 LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); int WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int nCmdShow); 但如果我想让用户选择在控制台应用程序输出结束时显示它,该怎么办呢。也就是说,在临时创建的窗口中以更可读的形式显示其数据,而不是控制台允许的纯文本模式

我知道当应用程序从一开始就打开一个窗口时,窗口的创建方式,也就是你调用

LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
int WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int nCmdShow);
但如果我想让用户选择在控制台应用程序输出结束时显示它,该怎么办呢。也就是说,在临时创建的窗口中以更可读的形式显示其数据,而不是控制台允许的纯文本模式

在控制台应用程序中,我有一个监视用户按键的功能,当我的程序结束时,它会显示一条消息:
按D以在窗口而不是控制台中显示结果,并且在代码中:

if (virtual_key == 0x44) {
  HWND myWindow = myCreateWindFunc(/* data */);
}

也就是说,我需要将创建窗口的所有代码打包到一个函数中,然后用数据调用该函数以填充其控件。

控制台应用程序可以使用任何相关的WinAPI函数(
MessageBox
DialogBox
等)创建子窗口或对话框

唯一需要注意的是,create函数可能需要控制台窗口的句柄。要获得它,您可以使用这里的示例