• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ウインドウスタイルの、WS_EX_TOPMOST)

ウインドウスタイルの設定で最前面表示されない問題

このQ&Aのポイント
  • VC++2008でWindowsフォームアプリケーションを作成中です。ウインドウスタイルの値としてWS_EX_TOPMOSTを指定しているにもかかわらず、ウインドウが最前面に表示されません。
  • CreateWindowEx関数でウインドウを作成する際、ウインドウスタイルにWS_EX_TOPMOSTを指定したにもかかわらず、ウインドウが最前面に表示されない問題が発生しています。
  • Windowsフォームアプリケーションを作成している際に、親ウインドウとするForm1にWS_EX_TOPMOSTを指定していますが、ウインドウが最前面に表示されません。他に設定しなければならない項目があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

WS_EX_TOPMOSTは第一引数に指定するものです。 特に他に条件はありません。 WS_EX_TOOLWINDOWと同時に指定しても問題ないはずです。

LongSecret
質問者

お礼

あ!ほんとだ! するとこれは・・・間の抜けた質問だったかもしれませんが(笑) 一人ではなかなか気づけなかったはずです。 ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • WindowsAPIの、ウインドウの表示非表示

    WindowsAPIのCreateWindowEx関数で作った 例えば第一引数が WS_EX_TOOLWINDOW|WS_EX_TOPMOST で第四引数が WS_SYSMENU | WS_VSCROLL | WS_SIZEBOX のウインドウを、何かのアクションがあったときいったん非表示にしてから、また何かのアクションがあった時に表示させるには、どのような物を使うのがベストなのでしょうか? プロシージャ内(HWNDはhw)で一例として(…?)試しに以下だけのものでやってみると long lStyle = GetWindowLong(hw, GWL_STYLE); lStyle = ~WS_VISIBLE; SetWindowLong(hw, GWL_STYLE, lStyle); 確かに非表示扱いにはなるようなのですが、これだけではスクリーンは再描画されず、再描画されるには人為的に別ウインドウを移動したりしないといけません。 おそらく「何かによって再描画させられれば」出来ると思うのですが それはどうすれば実現できるのでしょうか? また、これより もっと「こっちの方がいい」といった方法はありますでしょうか?

  • CreateWindowEx のウィンドウスタイルが反映されないのですが・・・

    CreateWindowEx のウィンドウスタイルが反映されないのですが・・・ VC++6.0 の SDK にて、ウィンドウを表示するプログラムを作成中なのですが、 スタイルが思うように反映されません。なぜなのでしょうか。 hList = CreateWindowEx( 0,      WC_LISTVIEW, "",       WS_CHILD | WS_VISIBLE |//猫でもわかる ~ によるうとデフォルトで必要らしい      WS_EX_CLIENTEDGE |   // 縁が沈んで見える境界線を持ちます。→ 持ちません      WS_EX_ACCEPTFILES |  // ドラッグ&ドロップを受けるとあるが、テキストをドロップしても×マーク      WS_EX_RIGHTSCROLLBAR | // 右スクロールバーが出るはずなのに・・・      LVS_REPORT,       // カラムのタイトル      0, 0, 0, 0,      hWnd,      (HMENU)LISTVW_HI_1,      hInst,      NULL);

  • ウィンドウのサイズ変更について

    タイトルバーがないウィンドウのサイズ変更について質問です。 タイトルバーがあるウィンドウでは、 ウィンドウの端にマウスカーソルを合わせると サイズ変更のカーソルに変わってサイズ変更が出来ますけど、 タイトルバーがないウィンドウでは出来ないのですが、 どうすればサイズ変更が出来るようになるのでしょうか? CreateWindowEx()には、 拡張ウィンドウスタイルには、 WS_EX_TOOLWINDOW | WS_EX_LAYERED | WS_EX_ACCEPTFILES ウィンドウスタイルには、 WS_POPUPWINDOW | WS_BORDER を渡しています。 開発環境 XP Visual Studio 2005 C、C++

  • ウィンドウのサイズ変更について

    ウィンドウのサイズ変更について質問です。 ウィンドウをサイズ変更する際に、マウスで指定数動いた時だけ サイズ変更するようにしたいのですが、何か方法はあるのでしょうか? ちなみに、 拡張ウィンドウスタイルは、 WS_EX_TOOLWINDOW | WS_EX_LAYERED | WS_EX_ACCEPTFILES ウィンドウスタイルは、 WS_POPUPWINDOW | WS_CLIPCHILDREN です。 「WS_THICKFRAME」を使用してやろうとしたのですが出来ませんでした。 何か方法があるのかもしれませんが。 開発環境 XP Visual Studio 2005 C、C++でWindowsAPIを使用しています。

  • タスクバーに非表示

    SDKではCreateWindowEXを使えば WS_EX_TOOLWINDOWを指定することでタスクバー上に非表示にすることができましたが、 MFCで BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)で cs.dwExStyle |= WS_EX_TOOLWINDOWとしたところ、 最大化、最小化ボタンが消えてしまいます。 最大化最小化ボタンをつけて、かつタスクバーに表示させたくないのですが どうすれば良いでしょうか?

  • トップレベルのEDITのスタイル

    実行するとEDITが出てきて入力させるだけなのですが hWnd=CreateWindowEx( WS_EX_TOPMOST, "EDIT",NULL, WS_POPUP, point.x,point,y,300,20,NULL,NULL,hInstance,0); として親無しのEDITを作成しています 移動もサイズ変更も必要無いのですが 背景に溶け込まないように枠だけはほしいと思い WS_BORDERを付けるなどすると タイトルバーが出てきてしまいます タイトルバー無しの枠付きには出来ないのでしょうか

  • ダイアログを閉じるとメモリー消費が増える

    メインウインドーに例えばA、Bという2個のモーダルダイアログを開くようにしていますが、Aのみで開いたり閉じたりするとメモリー消費が200kバイトづつ毎回増えてしまいます。 しかし、最初にBを一回開いて閉じておけば、その後は何回Aを開いてもメモリーは増えません。 また、メモリーの増えるタイミングはAのダイアログを開いた時ではなく閉じた時点で増えます。 解決策を教えてください。 //子ウィンドー作成 hwDialog_o = CreateWindowEx(0, "CDialog", "", WS_OVERLAPPED| WS_SYSMENU| WS_CAPTION| WS_BORDER| WS_VISIBLE| WS_CLIPCHILDREN| WS_EX_TOPMOST,//WS_CLIPCHILDRENでチラツキ防止 i, j, 660, 180, NULL, NULL, h_Inst, NULL); ShowWindow(hwDialog_o, nWinMode); UpdateWindow(hwDialog_o); // メインウインドウを無効化してモーダルに EnableWindow(hwnd,FALSE); ・ ・   色々と処理 ・ // メインウインドウを有効にしてモーダル解除 EnableWindow(hwnd,TRUE); BringWindowToTop(hwnd); return;

  • ウィンドウのハンドルが分からない

     VC++2005ExpressEditionを使用しています.  「ファイル」->「新規作成」->「プロジェクト」->「CLR」->「Windowsフォームアプリケーション」とすると,ただの四角いフォームが作成されます.このフォームにボタンやテキストボックスを配置していくわけですが,このフォームの「ウィンドウのハンドル」を取得するのはどうすればいいのでしょうか.そもそも,このフォームに「ウィンドウのハンドル」というものは存在するのでしょうか.  呼び出したいWindowsAPI(WSAAsyncSelect)の引数の中に「ウィンドウのハンドル」というものがあって困っています.参考書のサンプルプログラムには「HWND hWnd」などと書いてあるのですが,VC++が作成したファイルの中を検索しても「HWND」という文字列はヒットしませんでした.

  • タスクバーに表示しないようにするには?

    Windows API で教えていただきたい事があります。 メインの Window からメニューでいろいろな情報を表示する Window を子ウィンドーではなく独立したウィンドーとして作るようにしているのですが、たくさん作るとその度にタスクバーの表示が増えるのでうるさいので、メインのウィンドー以外はタスクバーに出ないようにしたいのです。 CreateWindowEx で WS_EX_TOOLWINDOW をつかうとタスクバーの表示はでないのですが、タイトルバーが貧弱になってしまいます。無理なのなら簡単にあきらめられるのですが、ボーランドのC++Builderを使って新しいTFormでウィンドーを作るとちゃんとしたタイトルバーでタスクバーは増えません。C++Builderはどうやってこういうことをやっているのでしょうか?

  • 色々なウインドウについて

    VC++2008でWindowsフォームアプリケーションを作っています。 .NET Frameworkのクラスライブラリだけでは出来ないと思うのですが 画像の真ん中のタイトルバーは普通ですよね? その下の、一回り小さいタイトルバーを持つウインドウや 右上はPhotoshopのもので左上はXGworks STというソフトのものなのですが こういった様々なウインドウは、全てWindowsAPIを使えば出来るのでしょうか?