0

私は現在、起動時にタイトルバーのないウィンドウでユーザーのデフォルトブラウザを開くC ++のアプリケーションに取り組んでいます(特に、右上隅のすべてのボタンを取り除きたい)。次のコードで実行可能パスを確認します。

HKEY Key;
LPCTSTR Key2 = TEXT("http\\shell\\open\\command");
RegOpenKeyEx(HKEY_CLASSES_ROOT, Key2, 0L, KEY_ALL_ACCESS, &Key);
char Path[256];
DWORD dwSize = 256;
RegQueryValueEx(Key, NULL, NULL, NULL, (LPBYTE)Path, &dwSize);
LPCSTR browser=Path;

に渡しCreateProcess()ます。

私の質問は: このウィンドウのタイトル バーを削除するにはどうすればよいですか? ShellExecute を使用してハンドルを取得する方がよいのではないでしょうFindWindow()か?

4

1 に答える 1

0

タイトル バーを削除する場合は、
FindWindow() を使用してターゲットのハンドルを取得します。
ターゲット ウィンドウのスタイル属性を変更して修正します。

#include <windows.h>
#include <stdio.h>

int main(void)
{
   HWND hWnd = NULL;
   LONG lStyle;  

   hWnd = FindWindow(0, "Google - Windows Internet Explorer");
   lStyle = GetWindowLong(hWnd, GWL_STYLE);
   lStyle &= ~WS_CAPTION; /*remove  WS_CAPTION style */
   SetWindowLong(hWnd, GWL_STYLE, lStyle);
   if(hWnd!=NULL)          
      SetWindowPos(hWnd, HWND_TOP, 0,0,0,0, SWP_FRAMECHANGED ); /*Changes style in your window */

return 0;
} 

これらの機能は両方とも機能しますが、CreateProcess は ShellExecute とは異なり、より信頼性が高く安全な機能です。

于 2013-06-25T14:10:06.640 に答える