[表示 : 全て 最新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辺り。

459 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:22:46 ]
>>457
おおかたリソーススクリプトや(親のハンドル使うけど)SetDlgItemTextでも使ったんだろう。

460 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:24:28 ]
そのとおりです。これだって本格的には、ハンドルを使うわけでしょ。
それがわからんから・・・↓こうなってるわけでして。

SetDlgItemText(IDC_STATIC1,"testest");

461 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:25:27 ]
TCHAR szText[] = _T("文字列");

SetWindowText( hWnd, szText);
SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);

462 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:26:54 ]
あ、忘れていた。つまり、455=458=460です

463 名前:455 mailto:sage [2009/05/12(火) 00:30:12 ]
>>461
その場合、hWndは、どこで宣言し、どうやって代入してるわけですか?


464 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:51:42 ]
ああ、そこからスタートか。
HWND hWnd = GetDlgItem( hDlg, IDC_STATIC1);

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

465 名前:455 mailto:sage [2009/05/12(火) 01:11:47 ]
>>464
その場合のhDlgは、当然にIDC_STATIC1が貼り付けられたダイアログのハンドル
っていうことですね。その場合、以下の意味がよくわかんですね。
>「ダイアログプロシージャ」(これは、・・・・Dlg.cppって言う意味ですか?)
>「第一引数」(これは意味がわからないです)
(例えば、ワークスペース名が"Rocket"として、例でいくと小生の場合はvs6で、
MFC AppWizard でダイアログモードでワークスペースをを作成したんですが。
RockeDlg.cppが以下になってます。このどこで値が決まってますか?
#include "stdafx.h"
#include "Rocket.h"
#include "RocketDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// ダイアログ データ
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard は仮想関数のオーバーライドを生成します
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート
//}}AFX_VIRTUAL
・・・・・もっと下ですか?

466 名前:455 mailto:sage [2009/05/12(火) 01:16:05 ]
それとも、hDlgは、予約語っつーかシステムからの引数(定数)っていうことですか?
ダイアログ内なら無宣言で、どこでも使える定数。

467 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:17:03 ]
MFCなら先にそう言えよ。

MFCはウィンドウハンドルを意識しないでいいように作られているから、HWND型はあまり使わない。



468 名前:455 mailto:sage [2009/05/12(火) 01:22:23 ]
>>467
でも、とにかくハンドルを使わないと、別のプロシージャからは、
別イのダイアログに貼り付けられたコントロールは外部参照できない
わけでしょ。↓のどれを使おうが。

SetWindowText( hWnd, szText);
SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);


469 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:25:17 ]
何をやりたいのかを述べよ。
「別イのダイアログ」なんつうのが今ごろでてくると、何をやりたいのかわからん

470 名前:455 mailto:sage [2009/05/12(火) 01:27:02 ]
>>467
>ウィンドウハンドルを意識しないでいいように

なら、SetDlgItemText(IDC_STATIC1,"testest");

と同じく、同一ダイアログプロシージャ内なら、SetWindowText()やSendMessage()
も、ハンドル引数(hWnd)は省略していいってことですか?



471 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:31:15 ]
MFCなら CWnd::SendMessage()、CWnd::SetWindowText() を使う。
両者のパラメータにウィンドウハンドルはない。

472 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:35:24 ]
CWnd* pStatic = GetDlgItem( IDC_STATIC1);
pStatic->SetWindowText( _T("文字列"));

473 名前:455 mailto:sage [2009/05/12(火) 01:36:24 ]
>>469
つまり、別のフォームで、RoketDlg.cppで、設定したり計算したデータを、終了前に
hddに保存する場合、別なフォームから参照して保存したり、RoketDlg.cppで計算を
始める前に、RoketDlg.cppのプログラム計算を開始する前に、hddに保存したファイルから
データを読んで別なダイアログでリストアップして、一覧の中から選んでRoketDlg.cppの
各コントロールのテキスト(キャプション)に値を設定する。それを読みながら計算
させる、とかです。


474 名前:455 mailto:sage [2009/05/12(火) 01:54:36 ]
>>469
つまり↓を、vcに移植したいわけです。
MV魔改.bmp
freedeai.com/up/index.html

475 名前:455 mailto:sage [2009/05/12(火) 01:55:57 ]
vb版は、数日中に軍事板でリリースの予定です。

476 名前:455 mailto:sage [2009/05/12(火) 02:01:50 ]
日本だって、造る気になったら、ICBMなんか、H2やMVを魔改すればすぐ造れるんだ。
って北の将軍様や工作員に見せて、「だから日本を脅かしたってビタ一文出さない。
日本を恐喝したって金にならない。早く被拉致者を返せ。」って教えるためです。


477 名前:455 mailto:sage [2009/05/12(火) 02:19:42 ]
>>471
>>472
ありがとうございます。




478 名前:455 mailto:sage [2009/05/12(火) 02:35:46 ]
>>471
その場合、CWndは、どこで、値が決まってるんですか?
>>471>>472の連携がわからないです。

↓これは記法ではないっていうことですか?
CWnd::SetWindowText()

つまり、上の記述の意味は、実際の記法は、

「Cwnd:」は、「CWnd* pStatic」の意味で、

「:SetWindowText(_T("文字列"));」は「pStatic->SetWindowText( _T("文字列"));」 である

という意味ですか?







479 名前:455 mailto:sage [2009/05/12(火) 02:41:06 ]
↓これはあくまでも、同一ダイアログ内での話ですよね?
(IDC_STATIC1は、別なフォームにもあるかもしれないわけで)


CWnd* pStatic = GetDlgItem( IDC_STATIC1);


480 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 07:18:51 ]
DirectXを使わないでディスプレイの垂直同期?にあわせて描画する方法ってありますか?


481 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:39:40 ]
一度VC2008++で作成したソリューションファイルは、2005では使えませんか?
家にあるのが2005しかないもので困ってます…

482 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:55:59 ]
>>455
あなたはクラスを使ったことがありますか?

483 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 09:49:30 ]
ソリューションファイルはテキストだから
適当なエディタで開いてバージョンあたり
書き換えれば2005でも開ける

484 名前:455 mailto:sage [2009/05/12(火) 11:05:05 ]
結局、VC++では、あるプロシージャで使われるオブジェクト(スタティックコントロールにせよ
エディトコントロールにせよ)、そのハンドルの値というのは、その、プロシージャに
行った時(そのプロシージャが実行されたとき)しか取得(代入)できないということですか?
(コンパイル時に、実行ファイルが各「ハンドル」を自動的に管理する変数としてバックグランド
で管理、保有するようにはなってない、と。)

だから、他のプロシージャから、他のプロシージャで定義、生成されたコントロールとかを
外部参照したい場合は、前もって、そのプロシージャに行った(実行された)時点で、
プロシージャ間で共有できる変数(パラメーター用の変数に)代入しておいて
、プロシージャ間でパラメータとして渡せ、と。
結局、ダイアログにせよ、メモリにロード(画面に出)されてなきゃ、その中のコントロールは
参照できっこないわけだから。
画面に出てるとか、とにかくその外部参照される他のプロシージャ部がメモリにロードされてる
うちは、ディスティネーション(アドレス、ポインタ)としての「定数」であって「変数」では
ないのだからパラメータになりうるから、プログラマー自身が渡せと。



485 名前:455 mailto:sage [2009/05/12(火) 11:07:54 ]
>>482
「クラス」の意味もよくわからないわけで。「クラスとは、変数の次元でのツリー構造の一部」
という概念ですね。自分としては。


486 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:18:37 ]
>484
結局、VC++では?
そんな意味不明なまとめだったら
日記かブログにでも書いとけ

487 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:24:47 ]
もしかしてウインドウのハンドルのことを言ってるのなら
apiだからVC++は関係ない。



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オプションつければいい







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

前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