3

アプリが最初からウィンドウ化されたときにウィンドウが作成される方法を知っています。つまり、あなたが呼び出します

LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
int WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int nCmdShow);

しかし、終了時にコンソールアプリケーションの出力を表示するオプションをユーザーに取得したい場合はどうすればよいですか。つまり、コンソールが許可するテキストのみのモードではなく、アドホックに作成されたウィンドウに、より読みやすい形式でデータを表示します。

コンソールアプリには、ユーザーキーの押下を監視する機能があり、プログラムが終了するとメッセージが表示されます: press D to display result in a window instead of console、およびコード内:

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

つまり、ウィンドウを作成するためのすべてのコードを1つの関数にパックし、その関数をデータで呼び出してコントロールを埋める必要があります。

4

1 に答える 1

3

MessageBoxコンソール アプリケーションは、関連する WinAPI 関数 ( など) を使用して、子ウィンドウまたはダイアログ ボックスを作成できますDialogBox

唯一の注意点は、create 関数がコンソール ウィンドウのハンドルを必要とする場合があることです。取得するには、こちらの例を使用できます。コンソール ウィンドウ ハンドルを取得する方法

于 2012-07-27T08:48:21.137 に答える