[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:59 / Filesize : 221 KB / Number-of Response : 903
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part33



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

488 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:27:09 ]
>>455
そのうちわかるからとりあえず汚くても動くように書いてみな
後で俺ってなんてVB厨だったんだと思うだろうけど仕方ないよ。


489 名前:455 mailto:sage [2009/05/12(火) 11:41:54 ]
>>486
「まとめ」じゃなくハンドルを意識する場合として出発点の概念(心がまえ)としてですよ。

これだから、・・・


490 名前:455 mailto:sage [2009/05/12(火) 11:43:34 ]
>>488
いや別にVBなんて、北がミサイル撃ったのでここ一月いじっただけで。


491 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:47:09 ]
うぜー

492 名前:455 mailto:sage [2009/05/12(火) 11:51:16 ]
Cで、ずいぶんと長いこと今でもやってる女房(独身時代はある大手建設会社のシステムで
「PLワン」とかやってたって言ってます。)女房から、「そういうソフト、どうしても造りたい
っていうならVB6でつくったほうが楽ですよ。私もVC++はよくわからない。」って
言われて造ったんであって・・・


493 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:54:57 ]
VB6でつくったほうが楽だよって言われたのになんでVCで作ってんの?
C++をやってればわかるのにCやってたってすぐにはわからないよ。

494 名前:455 mailto:sage [2009/05/12(火) 11:56:13 ]
>>487
OSファンクションだからっていっても、ファンクションコールの仕方、記法は、
言語別でしょ。MASMとVC++のファンクシションコールの仕方は同じですか?


495 名前:455 mailto:sage [2009/05/12(火) 11:58:52 ]
>>493
スタックが怖くなってきたから。
あと、SLEEP使うと、途中停止できないから。


496 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:59:30 ]
そのへんはMFCがラップしてるんだって何度言えばいいんだ



497 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:00:37 ]
>>495
だったら.net使えばー

498 名前:455 mailto:sage [2009/05/12(火) 12:07:52 ]
>>
NET使うとVBでもスタック拡大できるわけ?


499 名前:455 mailto:sage [2009/05/12(火) 12:09:33 ]
VB.NETでスタック拡大できるなんて初耳だな。


500 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:09:59 ]
できる

501 名前:455 mailto:sage [2009/05/12(火) 12:10:17 ]
どうやるの?

502 名前:455 mailto:sage [2009/05/12(火) 12:13:36 ]
ヘルプ、とかネット検索で、スタック、STACKで、何度やっても、
VBについてSTACKでヒットしたことは一度もないな、


503 名前:455 mailto:sage [2009/05/12(火) 12:16:47 ]
いま、VBのほうでは、↓つかってるけど、これだってVC++なら記法は違うでしょ。

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Const TOOLTIPS_CLASS = "tooltips_class32"

504 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:16:49 ]
スタックってなんだよ

505 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:20:07 ]
>503
意味的にまったく同じで何も違いがない

506 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:22:34 ]
EditBinで書きかえるかカスタム定数で



507 名前:455 mailto:sage [2009/05/12(火) 12:30:17 ]
>>505
中身はそうださ。OSが同じなんだから。
だけどプログラミング(言語としての言葉使い)の実践としては違うでしょ?
っていうことです。
意図する中身が同じだって、言語が違えば話かたは違うのと同じことでね。
例えば、日本で「オリーブ」でも、米語じゃ「あらぶ」なわけで。

中身は同じでも米国人に「オリーブ」って言っても通じない。
日本人に「あらぶ」っていうと「オリーブ」じゃなくアラブ(の国)
って言う意味にとられる。(笑


508 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:33:55 ]
まずは入門書なり読めよw

509 名前:455 mailto:sage [2009/05/12(火) 12:35:21 ]
>>506
それ、VB.NETの何版から?


510 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:36:57 ]
何も違わないという認識があれば言語が変ってもすぐに使いこなせる。

511 名前:455 mailto:sage [2009/05/12(火) 12:38:38 ]
>>508
VC++の入門書、4冊あるけど、どれにもハンドルの変数の代入の仕方、
を系統的には書いてない。ほとんど説明してない。索引にも載ってない。


512 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:41:33 ]
じゃあVC++の前に生のWindowsプログラミングを入門しろ

513 名前:455 mailto:sage [2009/05/12(火) 12:47:26 ]
いや、VBでSTACKが拡大できるなら、何も、無理して、こめんどうなVC++でGUIする
必要はない。計算はC(.DLL)でやって、VBに渡せばいいだけで。若干は、DLLから
直接的にVBのLABELのキャプションに書きこむくらいはしなきゃならないだろうけど。
画面いじるのは、VBのほうがぜんぜん楽でしょ。その場合は開発時間はずいぶん短く
なるよ。
ランタイムシステムがどうのこうのって嫌がらなければ・・・、だけど。


514 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:50:00 ]
どんな画面かしらんがダイアログベースならVBもVCも
たいして変わらんけどな

515 名前:455 mailto:sage [2009/05/12(火) 12:54:13 ]
そういうことか。WINDOWS3.1時代あたりのMS-VCの本を読んでないと、
ハンドルの理解は難しいってこと?
VS4.0の本はマニュアルまで女房は、廃棄しちまったらしい。


516 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:58:31 ]
まあ
www7.plala.or.jp/keny01/windows/
とかさらっと読めばわかるっしょ
でC++もわかってればMFCもわかる。
だから>>455が何がわからないのか一般人にはわからない。



517 名前:455 mailto:sage [2009/05/12(火) 13:04:05 ]
>>516
どこにハンドルの型宣言、値の代入の仕方(オペランド)、その値の効力の
範囲が説明してあるの?
文法(記法)だけなら「解説書」は不要だよ。MSDNでいいわけだから。


518 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:06:12 ]
そんなのヘッダーファイル見ればわかるだろ

519 名前:455 mailto:sage [2009/05/12(火) 13:07:30 ]
たしかに、VC++の本にはハンドルの説明は系統的にはまったく書いてない。
ハンドルの文法は、ウィンドウができたことによるものだから、その基本は
当時の本を読まないと、ダメかもしれん。
女房も当時はUNIXをやってたから、だからVC++は弱いんだわ。


520 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:07:54 ]
ハンドルの型宣言にこだわる理由がわからん。
MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。

521 名前:455 mailto:sage [2009/05/12(火) 13:11:38 ]
あいつは、学校ではFORTRANで、会社のシステム部になってからは、
PLIだったし、それ以後はUNIXで育ってるからな。

522 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:13:40 ]
まあUNIXは少ない知識でまわせるからな


523 名前:455 mailto:sage [2009/05/12(火) 13:15:58 ]
>>520
>ハンドルの型宣言にこだわる理由がわからん。
>MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。

何度も言ってるが、値の代入の仕方とか、パラメーターとしての扱いかた
がわかりにくいていうのよ。
「型宣言」といったのは「今の解説書は系統的(網羅的)には説明してない。」
という面で言ってる。


524 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:18:47 ]
だから何がわからないのかわからないの

525 名前:455 mailto:sage [2009/05/12(火) 13:20:03 ]
>>520
だって、プログラムは、一字間違っても、コンパイルできないわけでね。
初心者の場合は、文法上の必要な各要素について説明が網羅的な説明でない
場合、省略した要素があれば、省略されたとこは理解できない。
理解できない要素はネックとなって、それ以後は先に進まない。


526 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:23:05 ]
偉そうに理解できないと言われてもねw



527 名前:455 mailto:sage [2009/05/12(火) 13:23:30 ]
>>524
だからまず、>>471と、>>472の関係。
それだけではないが、外はまずこれがわかってから


528 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:23:56 ]
MFCなら値を代入しなくてもいいし、パラメータにウィンドウハンドルは存在しない。
すべては「オブジェクト」単位で管理する。

Aというダイアログのオブジェクトを DlgA、BというダイアログのオブジェクトをDlgBとすれば、
ダイアログBにある IDC_STATIC1 は、DlgB.GetDlgItem( IDC_STATIC1) でアクセスできる。
テキストを変更したいなら、DlgB.GetDlgItem( IDC_STATIC1)->SetWindowText( _T("テキスト")); だ。
DlgAのメンバ変数としてDlgBのポインタを保持しておけば、DlgAからDlgBにはすぐにアクセスできる。

上記の文中にでてくる用語の意味が不明なら、ここで質問する前にC++について勉強しろ。


529 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:24:20 ]
C/C++の入門書でファイルハンドルの使い方でも勉強すれば
一般的なハンドルの概念が理解できると思う。

530 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:28:10 ]
こんなウザいのをよく根気強く相手するなぁ

531 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:34:25 ]
もう女房はいいからwww

532 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:37:10 ]
>>530
暇なんだよね。不景気でw

533 名前:455 mailto:sage [2009/05/12(火) 13:37:46 ]
>>528
だって、>>471は、MFCなんだろ?
()の中であろうが外であろうが、CWnd::って、c++として記法だろうが、
とにくハンドルみたいなもんじゃないの?
ハンドルとは呼ばないかもしれんが。

1,で、とにかく、Cwndの実数はどこでどうやって取得するのか?
2,またそのCWndの使いかた(値が代入された後のCWnd)は、どう使用
すればいいのか。
つまり>>471のような記述の仕方なのかどうか?
単に「Cwnd::*****」(>>471)でいいのか?
ってことだよ。>>472では「CWnd::*****」ではないわけだから。
ま、そりゃc++の記法だろうけどさ。
>>472はc++でなかったら、どう記述する?


534 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:38:40 ]
PL/Iだろ

535 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:39:57 ]
あれ?やっぱりクラスすらわかってないんじゃね?

536 名前:455 mailto:sage [2009/05/12(火) 13:41:07 ]
>>534
文字として書けばそうらしいな。俺は夫婦の会話用語で言ってただけ。




537 名前:455 mailto:sage [2009/05/12(火) 13:49:42 ]
>>535
CWndが「クラス」っていうことはわかったよ。だけど
何にせよ、ディスティネーション(例。コントロールの固有アドレスを示すもの。)値
がなきゃ、他のプロシージャからは、目的のコントロールに、exeファイルは到達できない
わけでしょ。
だから、そのハンドル(つまりはオフセット・アドレスポインタ)の値の取得(代入)
の仕方と、使い方を教えろって言ってるんだよ。


538 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:52:44 ]
だからここで質問する前にC++を勉強しろって言ってるんだよ。

539 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:54:42 ]
だめだ。いくらなんでもここでC++教えるのは無理だw

540 名前:455 mailto:sage [2009/05/12(火) 13:58:00 ]
vc++では、IDはワークスペース(プロジェクト)としてはは固有ではないから、
(別なダイアログのコントロールが、同じ”IDC_STATIC1"というID名を持つことはありうるから)
↓これは、やはりスタティックコントロールを持ってる外部プロシージャ(ダイアログ2)から
↓ダイアログ1のIDC_STATIC1を参照したい場合は意味のない記述でしょ。

CWnd* pStatic = GetDlgItem( IDC_STATIC1); >>472


541 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:00:16 ]
中途半端な知識で抽象的で意味不明な用語ならべて質問するから
本題からどんどん遠ざかってるような気がする。

542 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:02:47 ]
そのGetDlgItemはAPIじゃなくてCWndのメソッドのほうのGetDlgItem

543 名前:455 mailto:sage [2009/05/12(火) 14:04:27 ]
なんだって?
ますますわかんなくなってきた。

544 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:11:37 ]
ここ無駄な時間をすごさずVB.NETに行ったほうがいいのでは?

545 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:14:55 ]
開発環境
やりたいこと

これだけ書いて質問すればすぐにまともな回答もらえたかもな

546 名前:455 mailto:sage [2009/05/12(火) 14:15:10 ]
>MFCは・・・パラメータにウィンドウハンドルは存在しない。 >>528
()の中でのハンドルの指定はない、ていうことは、うすうすは、わかったような
気がする。うすうすだけど。
では、外部プロシージャから(例えば、ダイアログ2に貼ってあるBUTTONが押されたとき、
ダイアログ1のスタティックコントロールを参照したい場合。
ダイアログ2にもスタティックコントロールは貼ってあって、両方が同じID名の場合。




547 名前:455 mailto:sage [2009/05/12(火) 14:17:25 ]
結局、>>478と>>479の質問には誰も答えてないんだよな。


548 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:20:06 ]
その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。
「C++を勉強しろ」というのが回答。

549 名前:455 mailto:sage [2009/05/12(火) 14:22:32 ]
ハンドルはC++関係ないでしょ

550 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:23:15 ]
外部プロシージャ
ダイアログ1
ダイアログ2

唐突にこんなものが出てきたって誰も関係が理解できない

外人
かばん1
かばん2

これで関係理解できるか?

551 名前:455 mailto:sage [2009/05/12(火) 14:25:52 ]
↓俺には「外部参照の仕方はわかりません。単一ダイアログの遊びのソフトしか造ったことありませんが、
↓一流プログラマーのように威張りたいです。」ってしか聞こえない。

548 :デフォルトの名無しさん:2009/05/12(火) 14:20:06
その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。
「C++を勉強しろ」というのが回答。


552 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:27:22 ]
じゃ、何を言ってもムダだな

553 名前:455 mailto:sage [2009/05/12(火) 14:36:17 ]
「ダイアログ」でなく「ダイアログボックス」って書けってか?

「プロシージャ」という言葉は許すけど、「外部」がつくとわからん、っていうのは
「++」以前、「C」言語の基本がわかってないというか、それ以前、プログラムの基本
がわかってないとしか言いようがないけどな。
「スタックって何?」とかって聞いてる人が先生ぶってるのと同じでさ。

>hDlg はわかるよな。ダイアログプロシージャの第一引数だ。>>464

>504 :デフォルトの名無しさん:2009/05/12(火) 12:16:49
>スタックってなんだよ


554 名前:455 mailto:sage [2009/05/12(火) 14:38:00 ]
「スタック」「外部参照」の言葉の意味が理解できないのが「C(++)の先生」やってるわけ?


555 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:39:44 ]
GetDlgItem( IDC_STATIC1) は this->GetDlgItem( IDC_STATIC1) と同じ

556 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:41:28 ]
VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら
editbin で /STACKオプションつければいい



557 名前:455 mailto:sage [2009/05/12(火) 14:44:46 ]
>>555
さんくす


558 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:46:02 ]
>>546
ダイアログ1にスタティックコントロールを公開するメソッドを作る
ダイアログ2からはダイアログ1->そのメソッド()

という形でアクセスする

559 名前:455 mailto:sage [2009/05/12(火) 14:46:52 ]
↓これは間違いだと思うよ。最近のVB2005とか2008わどうかわからないけどさ。

>VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら
>editbin で /STACKオプションつければいい


560 名前:455 mailto:sage [2009/05/12(火) 14:48:58 ]
VCは、当初からコンパイル時のオプションとして当初からあったけどね。

561 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:58:06 ]
dumpbin /headersしてみりゃわかる

562 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:58:57 ]
間違いってやってみたのか?
editbin は使ったことあるのか?

563 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:01:41 ]
↓これを間違いだと言われても困るわな

564 名前:563 mailto:sage [2009/05/12(火) 15:02:38 ]
すまそ、抜けた
msdn.microsoft.com/ja-jp/library/35yc2tc3(VS.80).aspx

565 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:02:50 ]
AからBにアクセスしたい場合に外部じゃ全然説明になってないだろ
AとBが全然関係ないんじゃアクセスしようがない。

566 名前:455 mailto:sage [2009/05/12(火) 15:03:31 ]
++とハンドルの定義やハンドルの動作は関係ないでしょ。
++は記法だけの問題であって。

VBは、やっぱSTACK拡大できないと思うよ。2008でも、STACKをヘルプのキーワードに入れても
ヒットしない、あるなら、こんな基本的で重要なこと抜くわけないもの。
試しにヘルプでやっても、スタックフレームっていうことは出てくるが、メモリ朗域の拡大ではない¥
スタック怖かったから、2008に期待をかけてダウンロードして調べてみたが、
↓のVB2008のヘルプで、"STACK"でヒットしたのは「実行中」の「検査」の話でね。
↓そもそも実行中にスタックメモリ領域(コード領域も意味する)の大きさ変えれるわけないんだから(笑

スタック フレームの検査のサンプル
このサンプルでは、任意のポイントでの呼び出し履歴の情報を、実行中のプログラムのコード内から取得する方法を説明します。呼び出し履歴を使用すると、現在のプロシージャに至るまでにアプリケーションが実行したプロシージャの順番を確認できます。



567 名前:455 mailto:sage [2009/05/12(火) 15:07:45 ]
>>563
Cは「当初>>560」からあったけど、マイクロソフトのVBはないって言ってるんだよ。
そのMSDNに書いてあるのは、CとかMASMの話だよ。



568 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:09:06 ]
だから外部という認識だからアクセスできない
馬鹿だよな

569 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:09:55 ]
こいつ人の言ったこと何も聞いてないのな。


570 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:11:58 ]
スタックサイズはリンク時に決定される。
コンパイルは関係ない。
リンク後でもEXEのヘッダー書きかえればサイズは変更できる。
そのためのツールがeditbin

571 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:12:22 ]
あれあれあれだよ
あれってどれだよ

572 名前:455 mailto:sage [2009/05/12(火) 15:13:14 ]
↓「スタック」も理解できないおまえらは他人にいつも何を言ってるの?

569 :デフォルトの名無しさん:2009/05/12(火) 15:09:55
こいつ人の言ったこと何も聞いてないのな。

568 :デフォルトの名無しさん:2009/05/12(火) 15:09:06
だから外部という認識だからアクセスできない
馬鹿だよな


573 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:13:53 ]
>571
これじゃないのがあれだろ
日本語も知らないのか?

574 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:16:00 ]
良いページ見つけた。
mail2.nara-edu.ac.jp/~asait/visual_cpp/intro_cpp.htm
ここのダイアログベース読めばいいんじゃね?

575 名前:455 mailto:sage [2009/05/12(火) 15:16:11 ]
↓とにかく、VBではできない

570 :デフォルトの名無しさん:2009/05/12(火) 15:11:58
スタックサイズはリンク時に決定される。
コンパイルは関係ない。
リンク後でもEXEのヘッダー書きかえればサイズは変更できる。
そのためのツールがeditbin


576 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:20:54 ]
で、結局この人はなにをやりたいの?



577 名前:455 mailto:sage [2009/05/12(火) 15:23:20 ]
>>568>>569は、異なるダイアログボックス間で、別のダイログボックスにある、同じ名前のIDC_STATIC1を
↓参照できるって言ってるのと同じこと。C++とかなんとかの問題でなくプログラムの基本がわかってないと
↓思うけどね。

GetDlgItem( IDC_STATIC1)

578 名前:455 mailto:sage [2009/05/12(火) 15:24:53 ]
俺は、同じこと何度も答えてるよ。


579 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:29:51 ]
>>455の最初の質問を読んでみた。
一番の近道はMFCを使わないで
CでWindowsプログラミングをすることだと思った。
多少記述は多くなるけど問題ないと思う。


580 名前:455 mailto:sage [2009/05/12(火) 15:31:22 ]
↓これはあくまでも、実行中のダイアログプロシージャ内で通用する話であって、
↓別のダイアログプロシージャ(外部プロシージャ、つまり別のダイアログボックス)
↓のコントロ−ルを参照してることではないだろ。この言ってる意味がわからないかねえええ

GetDlgItem( IDC_STATIC1)


581 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:34:04 ]
別のダイログだったらコントロールのIDが同じだって識別可能
使いまわすときにいちいち変えてたら面倒くさくてしょうがない。

582 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:39:32 ]
別のダイアログだろうがやることが同じなら
同じコードで実現できる。
というか同じでやった方がいい。

583 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:40:18 ]
>>580
リソースファイルをテキストエディタで開いてみな

584 名前:455 mailto:sage [2009/05/12(火) 15:42:27 ]
いくつも同じ名前(ID)のコントロールがある場合、実行ファイルはどうやって特定認識するの。
(通常はデフォルトの動作。つまり、カンレント(実行中)のプロシージャで動作するわけでしょ。)
(じゃ別のダイログプロシージャ(別のダイアログボックス)につくられるコントロ−ルには、
どうやって参照するの?って聞いてるのよ。この質問がわからないのかねえええ)
↓はあくまでも実行中のダイアログプロシージャ(ダイアログボックス)が自分に貼られてる
↓コントロールのアドレスに関する値を渡すという関数でしょ。

GetDlgItem( IDC_STATIC1)


585 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:45:09 ]
だから、>>528の中盤に答が書いてあるだろ。

586 名前:455 mailto:sage [2009/05/12(火) 15:45:27 ]
>>583
それで?



587 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:51:47 ]
>>584
あー
もう
考え方がCすぎるんだよ

ダイアログにはクラスがひもづくでしょ
ダイアログを表示するには
そのクラスのインスタンスを作って表示するでしょ
ってことはそのインスタンス内のIDC_STATIC1は一つでしょ
だからダイアログのインスタンス->GetDlgItem()になるの!

588 名前:455 mailto:sage [2009/05/12(火) 15:54:52 ]
528?
そうか。なんだ。すまん。
>>528
んじゃ、DlgBの値は、どこで、どうやって取得するわけ?

実際の記述は、取得したときにDlgBという変数を使ったら、
そのまま
DlgB.GetDlgItem(IDC_STATIC1)→でいいわけ?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef