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

433 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:35:12 ]
配列のインデックスの最大値を取得するにはどうすればよいでしようか?
ぐぐってもvbばっかり出てきます

434 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:39:08 ]
sizeof()

435 名前:デフォルトの名無しさん [2009/05/10(日) 19:47:38 ]
>>433
配列の名前をpenisとするとだな、
sizeof(penis);で取得できる。

436 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:53:48 ]
>>435
penisは動的配列なんだな。
sizeof(penis)が一定値にならないぞ。

437 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:54:15 ]
sizeof(penis) = 0 の場合もある

438 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:02:58 ]
struct penis { int used; } myson;
sizeof myson;
って括弧なしでかけるんだな
最近知った。

439 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:03:43 ]
>>437
いや実際には・・・
・・・もう止めようw

440 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:07:29 ]
どうusedどするのか詳しく

441 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:32:43 ]
>>434>>435
ありがとうございます、合計バイト数は出せました。
あとはデータ型に応じたバイト数で割ればインデックス最大値が出せるのですが、それも分かりません・・
変数penisのデータ型はどうやって調べるんでしょうか



442 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:35:27 ]
sizeof(penis) / sizeof(int);

?


443 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:39:21 ]
>>442
int型は環境によってバイト数が変わると聞いたので・・
LBoundみたいな関数は無いものでしょうか
それとも僕はよほど変なことをしているのでしょうか


444 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:57:21 ]
>>443
環境によって変わるからsizeof(int)してるんだよ
変わらなかったら4とか決めうちでいいじゃん

445 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:02:00 ]
>変数penisのデータ型はどうやって調べるんでしょうか
変数penisを宣言しているのは誰だ?

446 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:03:48 ]
何故、正体不明のデータを扱うのだろう?

447 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:06:04 ]
sizeofとかあとで変更あったときに直しやすくするだけのことで
その辺理解できない馬鹿だったら自分で固定で数決めとけ

448 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:08:38 ]
>>444
成る程!!すいませんでした、気づいてませんでした


449 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:10:28 ]
マンコ

450 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:35:25 ]
デバックしたら自動的に保存されてしまうようですが、オフにすることってできますか

451 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:47:39 ]
何が保存されるんだ?



452 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:01:19 ]
ソースコードだろ?
保存されたファイルを見てコンパイルするから無理じゃね?
VC出身の俺からしたら保存されねぇほうが気持ち悪いけど
他の環境出身者には保存されるのは気持ち悪いもんなのかねw

453 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:06:09 ]
ソースコードです
切ることは出来ないのですか、残念です
ちなみにVB・VBA・HSP出身(というほどやってませんが)です


454 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:13:09 ]
スクリプトじゃないんだからコンパイルしなきゃデバッグできんし、保存しなきゃコンパイルもできまい。

455 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:07:15 ]
土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに
成功した、ハンドル使わない方法でやっとだ。
そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText()
のやりかた教えろや。


456 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:14:48 ]
しごいて調べろっていうわけにはいんかだろうしなあああ

>変数penisのデータ型はどうやって調べるんでしょうか

457 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:16:28 ]
ハンドル使わないSendMessage()とか、SetWindowText()があるのか

458 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:19:22 ]
>>457
それはないでしょう。
ですから、ハンドルの使いかた教えてくれって言ってる意味ととって
くださってもいいです。すみませんです。


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++でなかったら、どう記述する?







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

前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