- 1 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 10:38:31 ]
- Microsoft Foundation Classライブラリ専用スレです。
前スレ ■MFC相談室 mfc16d.dll■ pc8.2ch.net/test/read.cgi/tech/1146117893/
- 515 名前:デフォルトの名無しさん [2007/03/01(木) 21:06:55 ]
- 『標準講座MFC6.0―Visual C++による効率的なWindowsプログラミング』
という本を以前読んで、大変勉強になったのを覚えています。 無くしたので、他の本と一緒に買おうかと思うのですが、どうせならVC++.net 関連の本がいいと思っています。サンプルも欲しいです。 何かお勧めはありますでしょうか?
- 516 名前:デフォルトの名無しさん [2007/03/01(木) 22:50:39 ]
- VC++2003 のリソースエディタで作成したポップアップメニューについて質問です
やりたいことは簡単でポップアップメニューのサブメニュー(横に開いたやつ)を 状況(その時の変数値など)に応じてグレーアウト(Enable が FALSE の状態)したいだけです OnUpdateXX(メニュー名) で pCmdUI->Enable(FALSE) することで 普通のポップアップメニューをグレーアウトすることはできました しかし、ポップアップメニューのサブメニューに同じようなことをやってもうまくいくません サブメニューを選択して初めて OnUpdateXX と OnXX が走っているようです どうにかして同じようにサブメニューをグレーアウトさせることはできないでしょうか?
- 517 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 22:54:35 ]
- スレ違い。書籍スレへどうぞ。
- 518 名前:デフォルトの名無しさん [2007/03/01(木) 23:19:43 ]
- そんなことおっしゃらずに教えて頂けないでしょうか?
- 519 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 00:42:30 ]
- >518
ここはMFCスレ。.netやりたいならそういうスレで聞けば?MFCなら標準講座でいいだろうし。
- 520 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 09:27:14 ]
- なんで.NETだと思うんだ?
- 521 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:20:53 ]
- >>516
OnUpdate〜に頼らず、自分でグレーアウトさせる。
- 522 名前:デフォルトの名無しさん [2007/03/02(金) 14:04:34 ]
- VC++6.0使っています。
MFCでAPIである SetWindowText(hWnd ,"(@_@)"); を使いたいのですが、MFC上でこの関数を実行すると ウィンドウハンドルの引数が省略されてしまい、コンパイルできません。 MFC上で、任意にウィンドウハンドルを指定してSetWindowText関数を 使う方法はありますでしょうか?
- 523 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 14:09:24 ]
- スコープ演算子
- 524 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 14:20:29 ]
- >>522
C++ の基礎からやりなおせ
- 525 名前:デフォルトの名無しさん [2007/03/02(金) 14:32:43 ]
- >>523
>>524 ありがとうございます。 勉強しながらなので、 お教えいただいたヒントを元に 答えを探ってみたいと思います。
- 526 名前:デフォルトの名無しさん [2007/03/02(金) 14:39:48 ]
- >>523
>>524 どこに対してスコープを設定すればよいのか 見当もつかなかったので、試しに関数の頭にスコープ演算子だけつけてみたら なぜかうまくいきました。
- 527 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 14:55:29 ]
- >>522
>MFCでAPIである WindowsのAPIなのかMFCクラスのメンバー関数なのかはっきりしる。
- 528 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 15:03:02 ]
- すでに解決済
- 529 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:31:06 ]
- CListBoxなどのコントロールでの文字列の扱いは
TCHAR(LPCTSTRとか)になってますが 実行時にマルチバイトでCListBoxを使うか UNICODEで使うかを選択することはできないものなんですか?
- 530 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:33:45 ]
- マクロはコンパイル時に展開されるから
マクロ使わないで使い分ければいい
- 531 名前:529 mailto:sage [2007/03/04(日) 15:45:56 ]
- >>530
すいません。その辺知識不足なんですが、 Win32APIで例えるとANSI版とUNICODE版があって、 それを使い分けれるってことですか?
- 532 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 10:54:26 ]
- いいえ、MBCS版とUNICODE版です。
- 533 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 12:45:59 ]
- 知識はいらない
MFCのソース見るだけ
- 534 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 13:15:40 ]
- ライブラリが違うな
- 535 名前:529 mailto:sage [2007/03/05(月) 21:33:00 ]
- ソース見たところ、
MBCS版とUNICODE版を同時に使える仕様にはなってない感じですが…。 よくわからんです。 とりあえず素直に別々にコンパイルして 本体を98系とNT系に分けて用意する方が楽っぽいですね。
- 536 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 10:23:29 ]
- 実行時に切り替える必要はない
- 537 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:12:36 ]
- >>509 の人です。
VS2005で作ったMFCプログラムを同様にVS2005のセットアップウィザードを作ったsetup.exe で実行してFramework2.0をインストすれというメッセージが出たものです。 結論からいうと、このsetup.exeを使わないで~~~.exeだけをコピーして動作させたら動きました。 MFCはスタティックリンクしました。ということで容疑者はセットアップウィザードらしいことが 判明。まあ使わなければいいという短絡的な結論になりました。
- 538 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:00:41 ]
- あほか
容疑者はおまえだよ セットアッププロジェクトをきちんと作れば何の問題もない
- 539 名前:デフォルトの名無しさん [2007/03/09(金) 00:20:07 ]
- MFC にtemplateを組み合わせたフレームワーックってあります?
例えばCCOMBOBOXにSetItemDataPtr使ってある型を足してく場合とかに をやってくれるようなtemplate関数とかが用意してあるやつとか MFCのコントロールとtemplateを組み合わせるのって普通はしないものなんでしょうか? 上記のある型を設定した後にプログラムからSetItemDataptrで設定した型のある値を指定したら SetCurSel あたりで指定した項目に対応するやつを選択状態にしてくれるようなやつとか
- 540 名前:デフォルトの名無しさん [2007/03/09(金) 00:25:10 ]
- ダイアログ以外だとポトぺタってできないんですか?
- 541 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:36:03 ]
- ポトペタしたいなら.NETの方がいいよ
- 542 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 03:03:47 ]
- VB6の間違いだろ
- 543 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:47:51 ]
- FormViewは?
- 544 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:38:01 ]
- VC++のエディタのようなウィンドウを作ろうとしています。
(テキスト表示の右側に●とか矢印が出るウィンドウ) それで、自分なり考えたのですが、 1. CEditView からビューを作成。 2. OnCreateで左側のマージンを空ける。 3. OnDrawとかで●とか矢印を書く。 でも、そもそもOnDrawが呼ばれません。 他のアプローチがあれば教えていただけないでしょうか? ちなみに当方WindowsのGUIプログラミングはド素人です。
- 545 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 06:23:12 ]
- CEditViewの中はCviewにeditコントロールを貼り付けてあるだけで
位置調整に関係するのはCEditView::CalcWindowRectあたりか
- 546 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:52:35 ]
- >>544
CEditView なんぞ使ったらだめ。 CView に全部自前で実装しろ。 どのみち、ど素人にできるテーマではない。 その前にいろいろ勉強してから出直して来い。
- 547 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:31:21 ]
- >>544
とりあえず参考までに。 ttp://www.vcppclub.com/samples/vwdoc/p_leditor/leditor.html
- 548 名前:544 mailto:sage [2007/03/11(日) 00:45:00 ]
- >>545-547
レスありがとうございます。 >>545 こんなメンバがあったのですね。しらなんだ orz 勉強になります。 >>546 ごめんなさい。今勉強中で行き詰まったので、ちょっと甘えてみました。 >>547 てか、行番号のところに●とか矢印描画したらやりたいことそのままではないですか!! まだ、ちゃんとソース見られてませんが、これからじっくり追って行きたいと思います。 ありがとうございます。 良スレ発見!!
- 549 名前:548 [2007/03/17(土) 14:50:17 ]
- __,,..、、- - - .、、...,,___
,,、‐''"~ ̄  ̄``''‐、、 / \ / ヽ / ヽ / / ~~` '' ‐- 、、 ,,__ __ ,,..、、 -‐ '' "~~\ ヽ | / __  ̄ __ ヽ | .| { ´ ‐- ....__ __... -‐ ` } .| .| 〉,,・^'' - .,, ~ i ~ __,,.- ^`・、.〈 | ./ ̄| /,/~ヽ、 `'' ‐--‐ ,.| 、‐-‐'' "~ _ノ~\,ヽ | ̄ヽ | (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) | | }.| ./' \二二・二../ ヽ / ヽ、二・二二/ 'ヽ | { | .| //| .| / | |. \ | |ヽヽ| .| .| | .| / | |. \ | | | .| |ヽ.| | / .| |. ヽ .| .|./ .| | .| | / | | ヽ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ .| | / .| | ヽ | | / | 用件を .ヽ.| | / '二〈___〉二` ヽ | |./ < | | `-;-′ | | | 聞こうか… iヽ|. ,,... -‐"`‐"`'‐- 、、 |/i \_________ | ヽ /...---‐‐‐‐‐----.ヽ / .| | ヽ. ,, -‐ ''"~ ~"'' ‐- 、 / | .| ヽ ! ./ .| ,,| ヽ. | ./ |、 |\. ヽ / /.| .|. \. ヽ、____ ___/ / .| ' `  ̄ ̄ ´ '
- 550 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:58:13 ]
- CDialogBarのダイアログで
List Controlを利用しているのですが カラムを初期化するタイミングはどれがよろしいのでしょうか? CDialogの場合はOnInitDialogがあったんですが CDialogBarには無いみたいで
- 551 名前:デフォルトの名無しさん [2007/03/18(日) 10:07:39 ]
- >>550
Create()の中で、CDialogBar::Create()呼び出し後にやってます
- 552 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 23:04:42 ]
- CPropertySheetEx/CPropertyPageEx(PSH_WIZARD97)を利用して、
各ページの上部ヘッダ部に画像付きのウィザードを作成しています。 Windows Vista上で、この方法で作成したウィザードを実行すると、 なぜか各ページの上部の画像が表示されなくなってしまいます。 (Windows XPでは問題なく表示されます) これを回避する方法はありますでしょうか?
- 553 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:47:48 ]
- Vistaを見捨てる
- 554 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:11:06 ]
- Vistaの互換性の問題なのか、>>552のプログラムがトンチキなのか
- 555 名前:デフォルトの名無しさん [2007/03/21(水) 19:50:40 ]
- 先生、MFCでアプリ作ってたらエロイ人が
「.NETのメニューみたいにかっこよくしろ」 とか言ってきました。
- 556 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 19:59:11 ]
- そもそも2ちゃんねるで聞くなんてww
最新スレ50しか読んでないが、質問主は殆ど玉砕だな 昔の2ちゃんねるは玉石混在で光るものもあったが、今は石しかない プログラム技術@2ch掲示板なんて止めて、 質問主を煽る技術@2ch掲示板として、スレッドも一つか二つにまとめたらどうよ
- 557 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 20:03:16 ]
- 本気で困ってたら2chなんかで聞かないって
特にム板はクズの集まりだしな
- 558 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 20:16:01 ]
- 【審議中】
∧,,∧ ∧,,∧ ∧ (´・ω・) (・ω・`) ∧∧ ( ´・ω) U) ( つと ノ(ω・` ) | U ( ´・) (・` ) と ノ u-u (l ) ( ノu-u `u-u'. `u-u'
- 559 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 22:34:13 ]
- 手前の二人に耳が無いのが気になる
- 560 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:49:07 ]
- >>556-557
トンチキな質問をして煽られたのか。 >>559 「手前」と思わせといて、実は下。 つまり、上に乗っかってる奴で隠れている。
- 561 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 03:44:26 ]
- >>556
_,,:-ー''" ̄ ̄ ̄ `ヽ、 ,r'" `ヽ. __,,::r'7" ::. ヽ_ ゙l | :: ゙) 7 | ヽ`l :: /ノ ) .| ヾミ,l _;;-==ェ;、 ,,,,,,,,,,,,,,,_ ヒ-彡| 〉"l,_l "-ー:ェェヮ;::) f';;_-ェェ-ニ ゙レr-{ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ヽ"::::''  ̄´.::;i, i `'' ̄ r';' } | 久々にトンチキ . ゙N l ::. ....:;イ;:' l 、 ,l,フ ノ | 玉石混在で光るものもあった . |_i"ヽ;:...:::/ ゙'''=-='''´`ヽ. /i l" < のが、昔の2chなんだよな .| ::゙l ::´~===' '===''` ,il" .|'". | 今は石しかないから困る .{ ::| 、 :: `::=====::" , il | \________ /ト、 :|. ゙l;: ,i' ,l' ノト、 / .| \ゝ、゙l;: ,,/;;,ノ;r'" :| \ '" | `''-、`'ー--─'";;-'''" ,| \_
- 562 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 03:46:22 ]
- >>559
pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
- 563 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 00:12:04 ]
- コナミの麻雀ゲームの名前なんだっけ
- 564 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 05:06:26 ]
- 真・麻雀だろ、スーファミの
- 565 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 03:33:23 ]
- mobile fan club の略
携帯で月額料金を支払って登録すると会員になるファンクラブのこと 会員になると チケットの先行予約やデジタル会報の閲覧 待受け画像や着うた、着メロ、ムービー等のサービスを利用できる。
- 566 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 03:34:20 ]
- Mass Flow Controlerの略称。
気体の流量制御装置のこと。 真空装置などに微量、あるいは一定流量の気体を導入する時などに使用される。
- 567 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 14:03:09 ]
- ttp://ja.wikipedia.org/wiki/MFC
- 568 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 15:27:02 ]
- game11.2ch.net/test/read.cgi/gamestg/1159375041/
1 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2007/03/12(月) 15:26:41 ID:VIP/Boon 語れ 2 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2007/03/12(月) 15:27:05 ID:9qlxL9Bm >>1 ちょ、何そのIDwwwwwwwwwwwwwwwwwwwwwwww
- 569 名前:sage mailto:sage [2007/03/29(木) 01:36:44 BE:830995788-2BP(0)]
- 質問です。
XP, Vista 上で動くプログラムを書いているのですが、 ダイアログやその他のUI系フォントとして、XPだと MS Gothic 系 に、Vista だと主に メイリオ にしたいと考えて います。 名前直指定とかは行わず、テーマとかシステムに 即したコードにしたいのですが、そもそもMFCのダイアログに 使われるフォントを、うまく切り替える方法すら分かりません。 そもそも、OSのフォントの扱いからしてよく分かってないのですが、 ここから調べていきたいと考えています。 なにかいい解決策がないでしょうか?
- 570 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 01:46:24 ]
- MFCのダイアログの文字って
リソースで指定するんじゃないんの?
- 571 名前:569 mailto:sage [2007/03/29(木) 01:53:07 BE:363560674-2BP(0)]
- >>570
その通りで、リソースで指定しています。ひとまず、ダイアログの プロパティにて、"Use System Font" を true にしています。 そうすると、フォント名が"MS Shell Dlg" になります。 あと、開発環境を忘れていましたので、書いておきます。 VS2005 pro sp1 xp sp2, vista
- 572 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 06:02:23 ]
- ダイアログのフォントを変えたい場合は CDialog::CreateIndirect を使う。
それかダイアログを表示した後でコントロールごとにフォントを変更する。
- 573 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:39:04 ]
- 親ダイアログの初期化処理が行われていることを知らせるために、
ポップアップダイアログを作って、プログレスバーで処理中が わかるようにしようとしています。 プログレスバーは処理が行われていることが分かればよく、 タイマイベントに応じて単純にカウントアップするだけです。 具体的な手順として @親ダイアログのOnInitDialogで、プログレスバーをもつ子ダイアログを作成 A子ダイアログのタイマイベントを起動(SetTimer) B親ダイアログの初期化処理 (この間に、子ダイアログのWM_TIMERイベントでプログレスバーをカウントアップ) C子ダイアログのタイマイベントを終了(KillTimer) D親ダイアログのOnInitDialog終了 としています。 しかし意図した通りには動作しません。 原因として、Aで起動したタイマイベントが、Dのあとに動作を開始しているためです。 (Cの処理をコメントアウトしたところ、親ダイアログの表示後に、 OnTimerイベントが呼び出されていることを確認しました。) そこで質問なのですが、 (i) Aで起動したタイマが、実際はDのあとまで起動されない理由と、 (ii) Aで起動したタイマを、Aのタイミングで動作させる方法 です。わかる方いらっしゃったらお願いします。
- 574 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:53:48 ]
- >>573
(i)WM_TIMERはメッセージキューに置かれるが そのメッセージを取りに行く処理(メッセージポンプ)が処理が終わるまで行われていないため。 (ii)子ダイアログを別スレッドで作成する。 とりあえずこれ読んで ttp://msdn2.microsoft.com/en-us/library/ms644927.aspx
- 575 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 14:22:49 ]
- >574
ありがd。 ただ、子ダイアログを別スレッドにしても、 メッセージポンプ自体が動いてないのだとすると、 子ダイアログの描画がイベントはちゃんとおこなわれるのん?
- 576 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 14:39:40 ]
- >>575
>>574のURLを読んでくれ
- 577 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 14:56:30 ]
- (゚д゚)読まぬ!
- 578 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:31:31 ]
- 読みたくないんだい
- 579 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 23:09:10 ]
- >>573
(ii)どうしてもタイマ使いたいってんなら>>574の通り 親のOnInitDialog()の進行状況を表示したいだけなら 親側からユーザー定義メッセージをSendMessage()してやればよい これ一番単純 このスレ死んでんのかと思ってたよ >>573が態々ネタ創作したようにも見えるが
- 580 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 01:13:11 ]
- タイマを使うのが、コード書く分には一番楽だなあ、ぐらいの考えです。
スレッド化はしてみたけど、どうにもうまく動かないところ。 別のところでこけてるのだろけど、いまのとこ原因不明です。 進行を知らせるダイアログをシングルトンで実装して、 MFCクラス、一般C++クラスを問わず、時間のかかる処理のときは、 動作中であることを気軽に示せるようにして、↓みたいな使い方を考えてます。 LoadingDialog->inst()->starg() //時間のかかる処理 LoadingDialog->inst()->stop()
- 581 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 06:13:47 ]
- 普通に考えたら時間のかかる処理を別スレッドにする。
プログレスバーはステータスバーに表示
- 582 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 08:25:19 ]
- >>580
逆に考えるんだ。 GUIスレッドはあくまでもGUIに徹し、時間の掛かる処理はワーカスレッドで行なう。 それがイベントドリブンということだ。
- 583 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 08:25:41 ]
- 質問は普通のプログラムの作りかたじゃなくて楽したいということか
だったらどうでもいいや あと、よく考えたらWinRarなんかはダイアログにプログレスバーだな あれはダイアログ側で時間のかかる処理か
- 584 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 14:26:50 ]
- >>571
XP用とヴィスタ用の両方のダイアログを作る OS種別でどっちかを使う
- 585 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 20:08:54 ]
- >>556です
>>573 整理した方がいいよ ワーカースレッドのタイミングで描画させようとすると君のようなパラドックスに嵌ります この場合ワンクッション置いて、子ダイアログの遷移を親ダイアログがGETできるようにすれば いいと思う、(インラインでGET関数を記述すればいい、SET関数も必要になると思う) あくまでも主体は親で子は遷移を知らせるだけ(描画できるタイミングを通知) 一見普通に処理しているように見えてもワーカースレッドのタイミングで描画を行う プログラムは間違いなく破綻します。
- 586 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 20:25:44 ]
- >>558です
>>556に騙されるな
- 587 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 20:51:13 ]
- >>586
>>585だが なんだよ、マジレスしてるのにww いいよ585の反対で実装してごらん面白いことになるよww それから>>573は簡単だからタイマー割り込み使うって書いてたけど MFCでタイマーの使い方ってネットでたまに見かけるけど まともな使い方してない場合が多いよMSDNのコードも漏れ的には不満なんだが
- 588 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:31:23 ]
- >>586です
「>>556です」とか突然言い出すからネタで返しただけ。気にするな。 で、まともじゃないタイマーの使い方の説明キボンヌ。何か気になる。
- 589 名前:デフォルトの名無しさん [2007/04/11(水) 13:37:48 ]
- 各種コントロールを乗せた、WS_CHILD スタイルのダイアログ リソースを用意して、
CControlBar 派生クラスの OnCreate で CDialog::Create を呼び出して コントロールバーの中にダイアログを入れています。 このとき、ダイアログ上のコントロールのメッセージは、 どうやって受け取ったらよいでしょうか? int CFooControlBar::OnCreate(.....) { ...... // コントロールを乗せたダイアログをリソースから読み取る m_hogeDlg.Create(IDD_HOGE_DIALOG, this); m_hogeDlg.ShowWindow(SW_SHOW); } m_hogeDlg のメッセージを受け取るには?
- 590 名前:586 mailto:sage [2007/04/11(水) 19:42:13 ]
- >>588
マジレスはもうおしまい後は自分で考えてねww それではそっけないのでヒントは 「一意」 サービスしすぎww以上 >>>589 C++から勉強しなおした方がいいYOというか 585で説明してるしww 皆さん結果を求めたいがために焦りすぎ、実装する以上もっと気の細かい シーケンスが必要ですww 質問「何々の関数に、赫々しかじかの引数を与えましたが結果がでません」 答え「準備不足です」
- 591 名前:556 mailto:sage [2007/04/11(水) 19:44:18 ]
- ↑
すまん>>556です
- 592 名前:デフォルトの名無しさん [2007/04/12(木) 09:38:16 ]
- CListCtrlについて質問です。
ある関数で、CStringの文字列を引数として渡し、リスト内に同じ項目が 存在しない場合、追加処理を行っています。 LVFINDINFO listInfo; listInfo.flags = LVFI_STRING; listInfo.psz = inStr; // Itemを検索 int findItem = listCtrl.FindItem(&listInfo); このとき、FindItemを使って検索するときに大文字と小文字を別物として検索することはできますか? 今のままだと、AAAの後にaaaを追加しようとしたときに既に追加されていると判断され、 リストにはAAAしか存在しない状態になってしまいます。
- 593 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 09:49:38 ]
- >>592
できない。
- 594 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:10:59 ]
- >>592
FindItemで見つけた後、一致しているかどうか自分でチェックしたら?
- 595 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 03:27:54 ]
- つ仮想リストビュー
- 596 名前:592 mailto:sage [2007/04/13(金) 14:43:38 ]
- ありがとうございました。FindItemで見つけた後strcmpで再度比較することで対応しました。
ただ、3つ以上重複した場合(aaaa,AAAA,AAAA, aaAAなど)、の場合、 AAAAのが2つ重複して追加される問題があるので 仮想リストビューにする方法も含めて、何か対応を考えて見ます
- 597 名前:デフォルトの名無しさん [2007/04/13(金) 23:24:35 ]
- 見つかった文字列+1を指すポインタアドレスを引数として再起呼び出しをすれば如何?
- 598 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 14:07:26 ]
- メッセージを投げたいオブジェクトを生成するために
安易に画面も持たないのに CDialog を継承したクラスをCreate してたり するんだけど、(要は他のオブジェクトからメッセージを投げるのに、 有効なm_hWndが欲しいだけ) CDialog じゃなくて CWnd を継承して有効な m_hWnd をもつ オブジェクトを生成する手段ってあります?
- 599 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 15:13:15 ]
- CWndを継承すればいいじゃない。何が問題なんだ?
- 600 名前:598 mailto:sage [2007/04/14(土) 16:07:09 ]
- >>599
CWnd を継承したオブジェクトを Create しても h_hWnd は 0x0000 なので CDialog を Create してます なにか、画面に関係しないで CWnd を Create して 有効な h_hWnd を得られれば文句無いんですが
- 601 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 17:12:16 ]
- うちでは問題なく作成できるから、あなたのコードに問題がある。
- 602 名前:デフォルトの名無しさん [2007/04/14(土) 18:04:49 ]
- コントロールバー (CControlBar) にツールバー (CToolBar) を乗せることはできないでしょうか?
- 603 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:23:04 ]
- >>598
::CreateWindowExでメッセージonlyウィンドウ作って、 CWnd::SubclassWindow使えばいいんじゃね?
- 604 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:33:19 ]
- 仮想リストビューってSetItemCountEx()で設定できるのは
1億件までですよね?ドキュメントにはDWORDの最大数まで サポートしているようなことが書いてありますが、 実際にそこまで設定することは出来ますか? SetItemCountExを辿っていくとSendMessageで投げていますが、 1億を越える数字を設定するとSendMessageがFALSEを返すので APIのバグのような気もしますけど。
- 605 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:36:08 ]
- >>604
出来ません。
- 606 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:05:42 ]
- >>604
>ドキュメントにはDWORDの最大数までサポートしているようなことが書いてありますが 実際はメモリ量とか空間の限界とかあるから無理。
- 607 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:13:09 ]
- SetItemCountEx の仕様見ると int になってるけど
- 608 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:29:02 ]
- そりゃまあ実際に限界があるのは仕方ないけど、
なんで「一億」にしてあるのかがわからん。 100000001件にすると表示されないのな。ワロス。 MSDNに書いとけよ。これじゃアメリカ国民全員の名前を リストコントロールで表示することは出来ないじゃん。 マイクロソフトのくせに自国民の数すらサポートできない コントロールを作るなんて非難の対象だな
- 609 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:35:56 ]
- 大丈夫、マイクロソフトなんて国はないから自国民は一人もいないので。
- 610 名前:598 mailto:sage [2007/04/15(日) 08:16:10 ]
- >>601>>603
ありがとうございます 今は休み中にてVSEしかないのでMFCが無いので試せないので 明日にでも試そうと思います ちなみに画面を持たないCWndオブジェクトをCreate()する場合、 どんな引数が望ましいのでしょうか?
- 611 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 09:00:12 ]
- 非表示ウインドウでもhWndはあるだろ
なかったらShowWindowで表示することもできない ShowWindow 指定されたウィンドウの表示状態を設定します。 BOOL ShowWindow( HWND hWnd, // handle to window int nCmdShow // show state of window ); パラメータ hWnd ウィンドウのハンドルを指定します。 nCmdShow ウィンドウの表示状態を指定します。
- 612 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:16:49 ]
- 質問です。
MFCで作成したソフトを公開したいのですが、VS.net2003の入っていないパソコンで 自分の作ったソフトを実行してみると、 mfc71d.dll msvcp71d.dll msvcr71d.dll が必要です、とでてきます。 これらのdllは勝手に配布しても大丈夫なのでしょうか?
- 613 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:30:07 ]
- いいえ、デバッグ版を勝手に配布してはいけません。
- 614 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:34:11 ]
- >>613 mfc71.dll などdがついていないものなら配布しても大丈夫なのでしょうか?
- 615 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 23:04:36 ]
- >>614
MSに訊け。つーか付属ドキュメントくらい読め。
|

|