ページ 11

ボタンコントロールの作成と破棄について

Posted: 2005年12月25日(日) 00:28
by jacoby
ver4.04を使っています。
ボタンの作成と破棄について教えてください。

 黒色の太い境界を持つボタンを作成したいと
思い、BUTTONクラスでのスタイル定数を
「BS_DEFPUSHBUTTON」と設定したかったのですが、
RADツールではその設定の仕方が分からず、
代わりにそのボタンが張り付くウインドウの
クリエイト・イベント内で、

コード: 全て選択


 CreateWindowEx(&H00000000,"BUTTON","ok",_
                &H50000000 or BS_DEFPUSHBUTTON,_
                225,205,88,36,hTitleWnd,_
                CommandButton1,GetModuleHandle(0),0)
 SendMessage(GetDlgItem(hTitleWnd,CommandButton1),_
             WM_SETFONT,hFont_TitleWnd,0)
などと定義して、更にグローバル変数領域で

コード: 全て選択


 Const CommandButton1=1005
などとID番号を他のコントロールとかぶらないような値をセットして
実行してみました。

 とりあえずこれで黒色の太い境界を持つボタンの作成は
出来たのですが、分からないのはこのボタンコントロール、
作りっぱなしでいいのかな、ということです。
 今までCreateWindowEx命令はRADツールに任せ切りで
使ったことが無く、いざ使ってみるとヘルプには、
DestroyWindow命令があり、それぞれ対の関係になって
いるようにも思えます。
 CreateWindowで作ったものはDestroyWindowで破棄する、という
ような。

 ボタンなどのコントロールも一つのウインドウの形態とすれば
そのボタンが貼り付いているウインドウのデストロイ・イベントなどでは、
これらを破棄するときにそのボタンの為のDestroyWindow命令を実行
しなくてはならないのかなと、その辺りのことがはっきりと分からないで
います。

 ちなみに今は何も処理をしていません。見た目不都合無く動いて
いるようです。
(このボタンはモーダル・ダイアログウインドウ上のボタンとして作り、
DialogBox(hMainWnd,"TitleWnd")としてDialogBox命令で表示し、
ボタンがクリックされたら

コード: 全て選択


Sub TitleWnd_CommandButton1_Click()
  EndDialog(hTitleWnd,2)
End Sub
としてウインドウを閉じています。)


 ボタンなどのコントロールは、それらが貼り付いているウインドウを
破棄すれば、それぞれについては特に個別に後処理をする必要は
ないのでしょうか?

 要領を得ない質問ですみません。どなたかお知りのかたが
おられましたらよろしくお願いします。

Re: ボタンコントロールの作成と破棄について

Posted: 2005年12月25日(日) 00:44
by イグトランス
>  ボタンなどのコントロールは、それらが貼り付いているウインドウを
> 破棄すれば、それぞれについては特に個別に後処理をする必要は
> ないのでしょうか?

このとおりです。
親ウィンドウが破棄されるときに子ウィンドウも一緒に破棄されるので問題ありません。

ボタンの作成と破棄について

Posted: 2005年12月25日(日) 00:52
by jacoby
イグトランスさん、素早いレクありがとうございます。
そうですか、親ウインドウを破棄すれば大丈夫なんですね。
安心して続きを作りたいと思います。ありがとうございました。
またよろしくお願いします。

Re: ボタンコントロールの作成と破棄について

Posted: 2005年12月25日(日) 12:27
by Tomorrow
>  黒色の太い境界を持つボタンを作成したいと
> 思い、BUTTONクラスでのスタイル定数を
> 「BS_DEFPUSHBUTTON」と設定したかったのですが、
> RADツールではその設定の仕方が分からず、
因みに、RADツールでは[- Button プロパティ -]の[標準のボタン]にチェックするとできます。

ボタンコントロールの作成と破棄について

Posted: 2005年12月26日(月) 19:15
by jacoby
Tomorrowさん、返信遅れてすみません。
早速やってみたいと思います。
ありがとうございました。