クライアント領域にダイアログが・・・、 – 固定ページ 2 – プログラミング – Home

クライアント領域にダイアログが・・・、
 
通知
すべてクリア

[解決済] クライアント領域にダイアログが・・・、

固定ページ 2 / 2

鷲尾不徳
 鷲尾不徳
(@鷲尾不徳)
ゲスト
結合: 21年前
投稿: 21
 

>> ServerConectProc関数のWM_INITDIALOGの中の処理が気になります。
>
>えと、以下のような感じになります。WM_INITDIALOGでは特に何も処理していません。
>やっぱり何かやってやらないと問題ありなのでしょうか?

いえいえ、WM_INITDIALOG の中でウィンドウスタイルを変えているのかと、
一瞬頭をよぎってしまって…
関数は問題ないです。
# 昔、一度やらかして、ウィンドウ閉じれなくなったことあるんで。。。

質問の答えから見るにソースには問題はないと思います。
もう少し調べてみます。


返信引用
サスライの旅人
 サスライの旅人
(@サスライの旅人)
ゲスト
結合: 21年前
投稿: 21
 

ところで、ServerConectProc関数の最後の return TRUE;ってなんなのでしょうか?普通メッ
セージを処理しない場合、return FALSE;になるのでは?


返信引用
鷲尾不徳
 鷲尾不徳
(@鷲尾不徳)
ゲスト
結合: 21年前
投稿: 21
 

っと、これか!?
VC++.NETのダイアログエディタを開いて

1.プロパティ→表示→Control
2.プロパティ→表示→Transparent

を調べてみてください。
このプロパティがTrueだと画像っぽい表示になりました。

1→ダイアログのタイトルバーがなくなります。
  ちょっと違うか…
2→あれ?もしかしてこれですか?
  でもWS_EX_TRANSPARENTが定義されてないし…

# やっぱりビルドして確認しないとわからんか、表示は。>自分


返信引用
鷲尾不徳
 鷲尾不徳
(@鷲尾不徳)
ゲスト
結合: 21年前
投稿: 21
 

>ところで、ServerConectProc関数の最後の return TRUE;ってなんなのでしょうか?
普通メッ
>セージを処理しない場合、return FALSE;になるのでは?
あー、そうだったー!
サスライの旅人さんご指摘ありがとうございます。見落としていました。
ちょっと実験→うわ、固まった→これのようです。

# リロードして見ておけばよかった。


返信引用
鷲尾不徳
 鷲尾不徳
(@鷲尾不徳)
ゲスト
結合: 21年前
投稿: 21
 

> ちょっと実験→うわ、固まった→これのようです。
Transparentついてたときが固まっただけで固まってはいませんでした。
すみません。

# 何か自爆しまくってるなぁ


返信引用
サスライの旅人
 サスライの旅人
(@サスライの旅人)
ゲスト
結合: 21年前
投稿: 21
 

ということは、他に原因があるということですか?


返信引用
秋桜
 秋桜
(@秋桜)
ゲスト
結合: 21年前
投稿: 20
Topic starter  

なななな、なんと!!解決しましたw

#include <windows.h>

BOOL CALLBACK ServerConectProc(HWND hWnd,UINT msg,WPARAM wP,LPARAM lP){
switch(msg){
case WM_COMMAND:
switch(LOWORD(wP)){
case IDOK:
EndDialog(hWnd,FALSE);
return TRUE;
break;

// 「キャンセル」が押された
case IDCANCEL:
EndDialog(hWnd,FALSE);
return TRUE;
break;
}
}
return TRUE; ← FALSEに直した
}

一行直したら普通に表示してくれました。こんな一行であんな現象が起こるなんて・・・、
よくわからないこともあるのですね^^;

解決後も見ていたらもう一つ教えてほしいのですが・・・、
>鷲尾不徳様
>1.プロパティ→表示→Control
>2.プロパティ→表示→Transparent
どこを見たらいいのかよくわかりませんでした・・・、よろしかったらもう少し詳しく
書いていただけるととても助かります。

返信をしてくださった鷲尾不徳様、サスライの旅人様、dairygoods様、n様、
dairygoodsSunPac様、本当にありがとうございました。本当に助かりました。


返信引用
鷲尾不徳
 鷲尾不徳
(@鷲尾不徳)
ゲスト
結合: 21年前
投稿: 21
 

>解決後も見ていたらもう一つ教えてほしいのですが・・・、
> >鷲尾不徳様
> >1.プロパティ→表示→Control
> >2.プロパティ→表示→Transparent
>どこを見たらいいのかよくわかりませんでした・・・、よろしかったらもう少し詳しく
>書いていただけるととても助かります。

Ctrl+Shift+E でリソースビューを出しダイアログを選択・ダイアログ編集画面を出す
ダイアログ(他のアイテムではなく)を選択
F4でプロパティが表示される(デフォルトでは右ペイン)
その項目の中にあります。

> return TRUE; ← FALSEに直した
こちらに気づけなくてすみませんでした。
てっきりVC++.NETのウィザードが吐いたソースを加工したものだと思っていたので…


返信引用
秋桜
 秋桜
(@秋桜)
ゲスト
結合: 21年前
投稿: 20
Topic starter  

>鷲尾不徳様
>こちらに気づけなくてすみませんでした。

いろいろと教えていただいて本当に感謝しています。教えてもらっているのに
あやまられてもどうしたらいいのかとても困る所存です。最後まで本当にありがとう
ございました。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました