3

Win32アプリケーションにステータスバーを追加したい。CreateStatusWindow関数が使えることがわかりました。ウィンドウのサイズを変更するまでは問題なく動作します。私のコードブロックの一部を参照してください。

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }


   CreateStatusWindow(WS_CHILD | WS_VISIBLE, _T("Welcome to SpyWindows"), hWnd, 9000);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

これが私のアプリケーションのメインウィンドウの2つのプリントスクリーンです。

ここに画像の説明を入力してください

良いステータスバーを作成するにはどうすればよいですか?(私ももっと多くの分野に分けたいです)

4

1 に答える 1

9

ドキュメントには、ステータスバーがWM_SIZEメッセージを受信すると、適切な位置とサイズを再計算することが記載されています。

ウィンドウプロシージャは、メッセージを受信するたびにステータスバーのサイズを自動的に調整しWM_SIZEます。通常、親ウィンドウのサイズが変更されると、親WM_SIZEはステータスバーにメッセージを送信します。

したがって、これを実現する最も簡単な方法はWM_SIZE、親が受信したメッセージをステータスバーに中継することです(SendMessage()を使用して、ウィンドウプロシージャから)。ステータスバーはメッセージパラメータを計算に使用しないため、メッセージパラメータは重要ではありません。

于 2013-02-20T18:50:03.120 に答える