1 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 10:38:31 ] Microsoft Foundation Classライブラリ専用スレです。 前スレ ■MFC相談室 mfc16d.dll■ pc8.2ch.net/test/read.cgi/tech/1146117893/
513 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:51:13 ] んー、普通に作ればいらんけどな。 とりあえず、新規プロジェクトで何もしないでウィザードだけでできあがったダイアログで 試したらどうなる?
514 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:51:54 ] セットアップがあやしいな
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に訊け。つーか付属ドキュメントくらい読め。
616 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 00:55:13 ] >615 便乗で質問なんだが、その手の質問は MSDN購読してなくても答えてもらえるの?
617 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 06:01:25 ] そういう重要なことを正規ユーザーが知らないはずがない。 無料のexpressユーザー?と思ったけど MFCなら製品版使ってるんだろうし、どうやって手に入れたんだろう?
618 名前:デフォルトの名無しさん [2007/04/16(月) 17:40:12 ] すいません。くぐっても答えが見つからないので教えてください。 MFC AppWizerdで作ったDLLを Win32 Application(SDK)から呼び出せますでしょうか?
619 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 22:46:38 ] DLLの作りによる
620 名前:デフォルトの名無しさん [2007/04/21(土) 20:43:01 ] …そのまんまやなw
621 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:12:22 ] >>617 > 正規ユーザーが知らないはずがない いや、キッチリとは知らんよ俺は VC4,VC6,VS8の正規ユーザーなんだけどさw
622 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 07:54:49 ] そらあほだ。
623 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 11:35:15 ] 電車乗ったことあるけどキップの買い方知らないとかそういうレベル
624 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 11:36:16 ] 地方の人は知らないかもしれないけれど、今や切符を買わなくても電車に乗れるからねぇ。
625 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 12:38:59 ] 喩えの誤謬に突っ込む莫迦ありき。
626 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 13:00:28 ] いや、寧ろ誤謬と思ってないからこそ。 実際、知らなくても利用できると言いたかった。
627 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 14:21:36 ] 他のソフトならいざ知らず、開発ツールでそんなやつがいるとは驚きだw
628 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 14:56:35 ] _bstr_t strData[3]; strData[0] = "0000"; strData[1] = "1111"; strData[2] = "2222"; COleSafeArray sa; sa.CreateOneDim(VT_BSTR, 3, strData); _variant_t va = sa; とやってみると、_variant_tのコンストラクタで例外が出てしまいます。 sa.CreateOneDim(VT_BSTR, 3, strData); sa.CreateOneDim(VT_BSTR, 3); とすると通過するので、CreateOneDim()にstrDataを渡す方法が 間違ってるのかなと思うんですけど、 _bstr_t配列はどうやって渡すものなんでしょうか。 それとも、CreateOneDim()には_bstr_t配列は渡せない?
629 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 14:58:29 ] > sa.CreateOneDim(VT_BSTR, 3, strData); > sa.CreateOneDim(VT_BSTR, 3); > とすると通過するので sa.CreateOneDim(VT_BSTR, 3, strData); の部分を sa.CreateOneDim(VT_BSTR, 3); とすると通過するので のミスです。失礼しました。 よろしくお願いいたします。
630 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 16:25:30 ] _bstr_tの配列≠BSTRの配列
631 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 16:41:39 ] >>630 ということは、_bstr_t配列のままだとCreateOneDim()に直接は渡せないということですよね。 SAFEARRAYとかはまったくの未知で、このへんの使いかたって、 ネット上を探してもなかなか見つからないのですが、 _bstr_t配列やCString配列からCreateOneDim()に渡すBSTR配列を作る方法って、ご存知無いでしょうか。
632 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:06:44 ] ソース見るかメモリダンプして内部構造調べてみれば?
633 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:21:39 ] 切符買わないってどうやるの?
634 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:29:32 ] オレはもう何年も切符買ってないなあ Suicaとパスネットでやってきたが、最近はパスネットもいらなくなったし オートチャージで入金もない。 車はETCで料金所はとまらないし、旅行先でレンタカー 借りるときもETC車載かどうかを気にしてる
635 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:30:45 ] 飛行機もfelica携帯使ってチェックインもカウンターに行かないし 並ぶことがほとんどなくなった
636 名前:デフォルトの名無しさん [2007/04/27(金) 23:24:51 ] で、これらは相談か?
637 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 02:40:31 ] いいえ相談ではありません 日本語の練習です
638 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:12:47 ] VC6 MFCです プロジェクトの設定の、デバッグ、C/C++、リンクにプロジェクトオプションがあるのだが コマンドラインからビルドする場合この引数をどの様に渡したらいいの?
639 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:21:41 ] CL をコマンドラインから起動するときは、次の構文でオプションとファイル名を指定します。 CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
640 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:40:00 ] >>639 サンクス
641 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 02:23:43 ] msdev MyProject.dsp /MAKE "MyProject - Win32 Debug" /REBUILD とかは?
642 名前:デフォルトの名無しさん [2007/04/30(月) 22:58:55 ] おそらくかなり初歩的な質問なのですが、ダイアログから別ダイアログを開くためにはどうすればよいのでしょうか? VBのShowのようなコマンドがあるのかと思ったのですが、よくわかりませんでした。 よろしくお願いします。
643 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 23:05:30 ] CAboutDlgを参考に
644 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 05:06:10 ] >>642 インスタンス生成してから a) Create() して ShowWindow() b) DoModal() のどちらでも。つか、MSDNくらい嫁。
645 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:44:36 ] VC6 MFCです メニュー→ツール→オプション→ディレクトリ配下の インクルードファイル、ライブラリファイルは何処に保存されているのしょうか? C:\program Files\Microsoft Visual Studio配下はgrepしてみましたがありませんでした レジストリに記録されているのでしょうか? 知ってる人いたら教えてホスイ
646 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 13:45:47 ] パスの順番でファイルを検索する。
647 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:50:26 ] >>645 ちょっと探してみたがレジストリの HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories に入ってるみたいだよ
648 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:28:42 ] >>647 >>645 ですが 神が降臨しました、ありがとう実は現在ではVC6 MFCのUIが非常に悪いので 秀丸のマクロと融合させてできる限りの操作を秀丸中心にお行おうと思っていたところです そういう訳で探していました、本当にありがとね 処でMFCで作成したプログラムはコマンドラインからビルド、コンパイルまで出来るのでしょうか? (rcファイルはVCで作ってあると仮定してです)?
649 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:40:50 ] そりゃあできるっしょ。 プロジェクトのプロパティで、コンパイルとリンクのコマンドライン見られなかったっけ それ参考にしたらいいと思う。
650 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:45:48 ] >>649 サンクスです、取り合えず今レジのバックアップを保存したところです これからゴリゴリとマクロを書いていきますww
651 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:35:22 ] 全然見当はずれの方向に進んでるみたいだけど 相当頭堅そうだから本人のやりたいようにやらせて置くのが一番だな わざわざレジストリの場所教えてやったやつはかわいそう
652 名前:デフォルトの名無しさん [2007/05/01(火) 21:19:12 ] Platform SDKについてるMFCのソースをビルドすれば OSについてるものとまったく同じDLLが出来上がるんですか?
653 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:37:19 ] おい、Platform SDKはもう無くなったって、誰か教えてやれ。
654 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:48:50 ] VC2005 MFCです。 複数のモードレスダイアログを入れ子のような感じで作成したいのですが 孫のウィンドウを作成したところで正常に動作しなくなってしまいました。 実際のコードは下のように書いています。 //ビューでマウスがクリックされたら子ウィンドウとしてモードレスダイアログを生成 void CtestView::OnLButtonDown(UINT nFlags, CPoint point) { CTestDlg *testdlg; testdlg = new CTestDlg(); testdlg->Create(CTestDlg::IDD); testdlg->SetParent(this); testdlg->ShowWindow(SW_SHOW); CView::OnLButtonDown(nFlags, point); } //ビューで作成した子ウィンドウのボタンが押されたら、孫のモードレスダイアログを生成 void CTestDlg::OnBnClickedButton1() { CTestDlgB *testdlg; testdlg = new CTestDlgB(); testdlg->Create(CTestDlgB::IDD); testdlg->SetParent(GetParent()); testdlg->ShowWindow(SW_SHOW); } 何か根本的な勘違いをしてしまっているのでしょうか? 初歩的な質問ですいません、よろしくお願いします。
655 名前:654 mailto:sage [2007/05/02(水) 17:52:31 ] 少し変えて試してみたコードをそのまま書き込んでしまいました。 testdlg->SetParent(GetParent()); ↓ testdlg->SetParent(this); でした。
656 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:58:47 ] 「正常に動作しなくなってしまいました」を説明してくれ。 解決の重要な手がかりなんだから。
657 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:14:54 ] 関係ないけど モーダルならそういう風にローカル変数でもいいけど モードレスだと関数抜けた後のことが気になる。
658 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:17:27 ] ローカル変数ではないでしょ。 PostNcDestroy で delete this が入ってるか、メッセージで何とかしてるのかと
659 名前:654 mailto:sage [2007/05/02(水) 21:03:30 ] >>656 すいません、説明不足でした。 わかっている限りだと2パターンの変な挙動をしていて 1つはダイアログのウィンドウ自体は生成されているようでウィンドウの移動などはできるのですが 再描画のコードが動作していない時のような感じになる事があるのと(必ずというわけでも無いようです) 生成した孫ウィンドウがアクティブな間は何の問題も無く動作しているように見えるのですが 一度、子のウィンドウをアクティブにしてしまうとアプリケーション自体がフリーズしたような 状態になってしまうといった感じです。 念のためSDIの新規プロジェクトを作り直して見ても結果は同じでした。 >>657 ,658 一応 PostNcDestroy で delete this をしていました。 こういう場合でもスタティックかグローバル変数にしておいた方が安全なのでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 21:44:10 ] >659 思いつきで書いただけだから 「関係ないけど」と断ってる
661 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 21:45:08 ] >>659 ttp://msdn2.microsoft.com/en-us/library/ms633541.aspx >if hWndNewParent is not NULL and the window was previously a child of the desktop, > you should clear the WS_POPUP style and set the WS_CHILD style before calling SetParent. >Windows 2000/XP: When you change the parent of a window, you should synchronize the UISTATE of both windows. なんでSetParent使ってるの? ダイアログリソースに子スタイル設定して、Createで親指定すればいいのに。
662 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:14:49 ] あの最低な質問かもしれないですが、万が一という可能性もあるかもしれないので 質問させてください MFCでコンソールアプリって作成出来ないですよね、バージョンは問いません。
663 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:24:43 ] いや、普通にできるが。
664 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:52:33 ] >>663 え〜まじっすか? 新規作成→プロジェクトからはMFC ActiveX ContorolWizard or MFC AppWizard(dll) or MFC AppWizard(exe)しかないのだけど? これじゃあコンソールアプリは作成できないよね?
665 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:57:51 ] >>664 Win32コンソールプロジェクトを選択して、詳細でMFCサポート追加しろ。
666 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 01:16:56 ] >>665 そういう裏技があったのね、サンクス
667 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:51:02 ] CStringを返す関数から戻ってきたクラスは自分で廃棄しないでも良いですか?
668 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:28:54 ] CStringを返すと、呼び出し側ではそれのコピーを受け取るだろう。
669 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:16:24 ] よくこういう仕様のクラスあるけど腐ってるよね?>CString 一見便利そうに見えるけどインスタンスがハッキリしないから すげー扱いづらい こういう仕様デフォにする奴ってアフォだろ なげー文字列をCStringで扱うとアフォかってほど遅くなる 結局、使えない
670 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:49:03 ] ○○○ ○(・ω・)○ ソンナコトイワレテモ ○○○ ウチ、ボン・デ・ライオンヤシ .c(,_uuノ
671 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:46:34 ] >>669 >インスタンスがハッキリしないから 君が何を言っているのか判らないよ… 理解できてないだけじゃ?
672 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:54:13 ] >>669 せめて他の文字列を取り扱う手段と比較してから結論を出してくれ。
673 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 17:21:39 ] なんか、C/C++以外の言語と勘違いしてんじゃね?
674 名前:デフォルトの名無しさん [2007/05/07(月) 18:55:30 ] リソースエディタでダイアログボックスを作って、 CDialogを継承した派生クラスを作りました。 コントロールは、追加したメンバ変数を操作して 扱えましたが、ダイアログ自身はどうやれば操作 できるのでしょうか。 タイトルバーの文字列を変更する方法を模索中です。 this->SetWindowText("タイトル文字列"); を試すと異常終了だし。
675 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 19:29:26 ] 宇宙天地 與我力量 降伏群魔 迎来曙光 我が左手に封じられし鬼よ 今こそその力を、示せえーー!! うおおおおおおーーー!!! 俺の生徒に、手を出すなあーーー!!!!
676 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:10:38 ] >>674 異常終了の詳細キボンヌ
677 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:22:51 ] >>676 「Visual C++ Runtime Error [中止][無視][キャンセル]」 のような感じ文面のダイアログが出て終了。 本来ならそれで正解のはずということでしょうか。 何らかのプログラム上のミスが原因で異常終了が出てるのではないか という意味でしょうか。
678 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:30:27 ] SetWindowTextをどこで呼び出してる? コンストラクタの中とかじゃダメだよ。 ちゃんとウィンドウが作成されてCDialogオブジェクトに アタッチされてからじゃないと。
679 名前:デフォルトの名無しさん [2007/05/07(月) 20:40:02 ] >>672 じゃ、mallocで確保した領域に突っ込んだ文字列でいいよ これで想像付く? 後付けであれがないこれがないごちゃごちゃいうなよぶっ殺すぞ
680 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:43:58 ] >>678 エディットコントロールやスタティックテキストの値を変更している直後 で呼び出してます。 SetWindowTextで正解で、やはり何かプログラム上のミスでしたか。 わかりました、ありがとうございます。
681 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:50:22 ] CDialogもCWndの派生クラスだしな そもそもエラーで止まったところで何エラーなのか調べなさいよ
682 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:58:27 ] イヤです
683 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:29:57 ] >>679 想像も何も、あんたが比較して実際に遅いかどうか判断しなさいよ。
684 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:39:03 ] >>683 CStringは糞だろ 文字列に1文字ずつ足していくとどんどん遅くなってく類だろw
685 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:42:11 ] どうやって足しているのか興味深いなぁ。 まさかとは思うが、CString foo = ""; for (;;) {foo = foo + '-'; std::cout << foo << std::endl;} とかしちゃってるんだろうかw
686 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:04:49 ] 横レスだけど、それで突然思い出したから自分用のメモ代わりに書いとく。 CString hoge, hoge2; strcpy(hoge.GetBuffer(20), "this is a test."); hoge=""; //クリアしたつもりだけど何故かクリアされていない int length=hoge.GetLength(); //この値は確かにゼロ hoge2=hoge; //でもhogeもhoge2も"this is..."が入る hoge="AAA"; //これなら上書きされる int length2=hoge.GetLength(); //この値は3 hoge=""; //今度はきちんとクリアされる
687 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:06:47 ] >>685 mStr += strbuff; mStrはCString型のメンバ変数、strbuffは引数からうけとったchar* メソッド実行するたびに鬱になるw 後、CStringの変数を引数に突っ込んで中身を変更したいときとかウザイ transUnko(char* unko,char* chinko) ってときにいちいち移し変えなきゃいけねぇじゃん それか transUnko(CString *unko,char *chinko) 作らなきゃいけねぇじゃん(俺の知識だと) 後、 strXXX系の関数でいい感じにすでにこさえてあるC言語自分ライブラリ使いたいときも面倒 つーか、気軽に文字列型として扱えないところがウンコだね うにこーど?いらねぇってw対応予定ねーよ。マジでw って書いてみたけどさ、 もし簡単にできるにしてもできることがわかりにきぃ ねっとりべっとりしてやがんだこのクラス つかいにくーい!
688 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:18:12 ] MFC以外でもCString使いたいという話をよく聞くし、 MFCの中では評判いいクラスだと思う。 慣れないと使いにくいのは確か
689 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:24:37 ] >686 CString::GetBuffer 解説 GetBuffer 関数から返されるポインタを使って文字列の内容を変更するときは、 次に他の CString メンバ関数を使う前に、ReleaseBuffer 関数を呼び出す必要があります。
690 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:38:10 ] MFCを使うDLLの遅延ロードってNGなのかな? というのも、delayimp.libの中ではAfxLoadLibrary()ではなく、 LoadLibrary()を使っているから、どうなんだろう??
691 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:12:30 ] もともと遅延ロードってのは、セグメントを分けてれば Windows がちゃんとやってくれたんだよな。 MFCが自動的にやってくれるようになっただけで。
692 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 03:18:26 ] GetBuffer 関数から返されるポインタを使って文字列の内容を変更するときは、 次に他の CString メンバ関数を使う前に、ReleaseBuffer 関数を呼び出す必要があります。 CString hoge, hoge2; strcpy(hoge.GetBuffer(20), "this is a test."); hoge=""; //クリアしたつもりだけど何故かクリアされていない int length=hoge.GetLength(); //この値は確かにゼロ hoge2=hoge; //でもhogeもhoge2も"this is..."が入る ↑↑↑ここでコンパイル時にエラー出してくれりゃいいのに hoge="AAA"; //これなら上書きされる int length2=hoge.GetLength(); //この値は3 hoge=""; //今度はきちんとクリアされる
693 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 05:58:01 ] >>692 逆だな。ReleaseBuffer()する前にそうやってバッファを変更できないようにするためにGetBuffer()があるんだ。 つまり、fclose()しないでfopen()し直して、ファイルが更新されていないって文句言うようなもんだ。 >>687 少なくとも、レガシーな文字列とCStringを混在させて使うのが間違い。 型が違うのだから、相互にそのまま使えないのは当然だと思うが。 例えばprintf()に渡すように文字列を変更しないならキャストオペレータのお蔭で手間要らずなんだし。 Ex. void printSample(const char * foo) {printf("%s\n", foo);} CString bar = "Bar"; printSample(bar); 文字列を変更する関数は参照でも渡せばいいし。 Ex. void buildString(CString & foo) {foo += foo;} CString bar = "Bar"; buildString(bar);
694 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 11:21:24 ] いまいち、>692 がなにをしたいのか、全くわからん。 C++の事を何か勘違いしてるんじゃないだろうか。
695 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 11:25:02 ] レガシー大好きっ娘に何言っても無駄
696 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:15:50 ] ATLやWTLってSTLやBOOST、LOKIと親和性ありますか?
697 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:56:29 ] ないよ
698 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:29:51 ] STLと親和性高いWin32GUIライブラリがあった気がするんだが思い出せない
699 名前:デフォルトの名無しさん [2007/05/08(火) 23:45:24 ] リストビューオブジェクトに一次元配列を直接セットする方法はないでしょうか? いまはループで回してsetItemでセル一個ずつにセットしてます。 もっと効率がいい方法があればいいのですが。 よろしくお願いします。
700 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:47:08 ] >>699 つLVS_OWNERDATA
701 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:13:12 ] >>698 Win32 GUI Generics www.torjo.com/win32gui/ sourceforge.net/projects/win32gui/
702 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:03:56 ] >>694 >C++の事を何か勘違いしてるんじゃないだろうか。 いやいや、 >↑↑↑ここでコンパイル時にエラー出してくれりゃいいのに なんて書くくらいだから 勘違いとかそういうレベルじゃない。
703 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 15:19:50 ] ATL/STLはSTLと一緒に使える
704 名前:デフォルトの名無しさん [2007/05/09(水) 21:51:00 ] VC6.0で下記のページをみてステータスバーをダイアログにセットしたのですが、 SetTextしても文字が表示されません。 ttp://athomejp.com/goldfish/mfc/dialog/statusbar.asp MSDN等調べてみたのですが、実装方法がいろいろありすぎて、 どれが最適で何をしたらいいのかわかりませんでした。 すみませんが、よろしくお願い致します。
705 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:58:18 ] >>701 ちょっと期待してたんだけど、全然更新されてないね…
706 名前:デフォルトの名無しさん [2007/05/13(日) 01:32:28 ] 宣伝なんだが、構いませんね! wiki.livedoor.jp/vipshogi/d/FrontPage ここで、将棋の駒を擬人化するプロジェクトをやってるんだけど、プログラマにソースをもって逃げられてしまいました。 ついては、オープンソースで、新しくプログラムを作ろうと思っています。 MFCを使って作られたプログラムを弄れて、ギャルゲっぽいものに興味があって、協力出来る人がいたら、来てくれませんか。 現行スレは、↓です。 wwwww.2ch.net/test/read.cgi/news4vip/1178980360/ 宜しくお願い致します。
707 名前:デフォルトの名無しさん [2007/05/13(日) 01:41:34 ] >>706 追記です。 現行スレが落ちていたら、↓に書き込みを下さい。 ex14.vip2ch.com/test/read.cgi/part4vip/1178465966/
708 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:10:27 ] >>706 少しはまともな奴がいるっぽいけど 雑魚ばっかで話にならない 所詮妄想ばっかり先行してる烏合の衆か。 将棋部分に興味ないとかまったくわかんないとかレスが出るだけで俺は参加したくない。 馬鹿じゃねぇの 突破口だけいうと フリーで将棋プログラム公開してる人に頼み込んで 画像表示部分だけちょいっと弄らせてもらって好きな絵表示できるようにしてもらったほうが ナンボか可能性ある。
709 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:39:52 ] >>708 どこを見たのか分からんが結構な物言いだな、特に前半 ちらっと覗いてみたが、そんなレスはなかったと思うが
710 名前:デフォルトの名無しさん [2007/05/13(日) 03:27:34 ] >>709 だいたいこの状況じゃ 一番苦しいのってまちがいなくメインプログラマーでしょ? 絶対やんねぇよ ゲーム製作をなめてる 絵のことしか興味ないならビューワーでも作ってろっての 好き勝手要望出すだけの立場の奴等なんかプログラマーは殺意しか湧かない ゲーム製作現場だって金もらえるからしょうがなく仕事してるのがプログラマーだ この状況でソフト作ったらまちがいなくすべて俺の手柄だと俺だったら思うね。ていうか間違いねーよ。 それなのにオープンソースにします?はぁ?ふざけろ だからさ、こういうのやるつもりなら企画をする人間が間違いなくメインプログラマーを張れる人間でなければ絶対に頓挫する ゲーム製作で一番大変なのはまちがいなくプログラマーだ 実際身動きとれないでしょ? どういうシステムにしてどういう形のデータが必要になるのか? プログラマーがいなくてもここまではできますっていう部分あるか? 欠片も浮かばねーだろ?一歩も身動きがとれないでしょ?
711 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 04:12:48 ] うん、しかも金の流れが気になるー 偉そうにリーダー気取ってる奴の懐にいくらか入ってんじゃねーの? ブログとも繋がってるしな
712 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 06:21:48 ] >Q、バグ多すぎってレベルじゃねーぞ!! > A、バグ報告は多ければ多いほど、プログラム修正の参考になります。 なりません。
713 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 08:30:02 ] 手伝うどころか、優越感を得るための突っ込み先になってるな 大人気ないぜ
714 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 08:31:06 ] >>711 え、どこに繋がってる?
715 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:30:42 ] >>713 興味が先行してうっかりこれのメインプログラマーになっちゃった奴が可哀想だなと
716 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:10:01 ] VC++ 2005で開発を行っています。 CListCtrlで「大きいアイコン」表示をした時、スクロールの方向はどうしても、横スクロールになってしまいますが、 これを縦スクロールに変更したいと思っています。 どうやれば、縦スクロールに変わるのでしょうか。 よろしくお願いします。
717 名前:デフォルトの名無しさん [2007/05/13(日) 14:43:03 ] くだすれVisual C++(超初心者用)その4 pc11.2ch.net/test/read.cgi/tech/1164787254/946-951 から引っ越してきました。よろしくお願いします。 VS2005のMFCです。 CMainFramのID_FILE_NEWからOnFileNew関数を追加しました。 この関数で必要な処理の後、追加前の本来の処理を呼びだすか、 同等の処理を行いたいのですが方法がわかりません。その方法を教えてください。
718 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:44:14 ] >717 馬鹿には使えないからあきらめましょう
719 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:47:10 ] 教えるだけ無駄だな
720 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:33:57 ] MFCに嫌気がさした人の数→ pc11.2ch.net/test/read.cgi/tech/1059196520/
721 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:12:08 ] >717 OnFileNewを呼ぶ
722 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:12:30 ] >>717 どちらかというと、CDocument::OnNewDocumentでどうにかすべきじゃね?
723 名前:717 mailto:sage [2007/05/13(日) 16:19:03 ] とりあえず解決しました。 CMainFrameにメッセージを割りあてたのが間違いでした。 CWinAppにプロテクトのOnFileNewがあってこれがデフォルトの処理のようです。 CxxAppに割り当てて、もとからあった ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)を削除したら目的の動作になりました。 OnFileNewがプロテクトメンバだったので無いとか呼べないとか思ってしまったようです。
724 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:29:45 ] >>715 なるほど、このスレの住人に対する優越感だったってわけか
725 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:43:45 ] なんかよくわからんこと言ってるけどそのwiki誰に金入ってるかわからんぞ
726 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:50:27 ] >>725 アフィってこと? そんな感じに見えないんだけど……。
727 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:07:40 ] 可哀想だと思う事が優越感だって、わからんのかね
728 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:49:34 ] >>726 じゃあ、稼がせてやったらいいよw
729 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:18:01 ] >>728 質問に答えないで笑うだけとは、お前、アフォにしか見えんな そんなに貶めたいなら、向こうで文句言ってくればいいだろうに こっちに問題を持ち込むなよ
730 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:22:59 ] >>729 そのレスを>>706 に付けずに俺に言う辺り、お前も相当頭おかしいだろw
731 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:27:15 ] >>730 反応するよりましだと思うが まあいいや、お前がいなくなったらまたこよう
732 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:32:43 ] なんか、大変な事になってる…… 俺はただ単に、アフィしてるような場所ならいかないけど、そうじゃないなら手伝っても良いかなって思っただけなんだけど
733 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:50:05 ] だからそういう話はあっちでやってくれ頼む
734 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:27:54 ] >>716 お願いします。
735 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:10:24 ] >>716 LVS_ALIGNTOP。 プロパティウィンドウなら、表示-Alignment-Topを選択。
736 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 00:31:26 ] >>735 ありがとうございます、一発で解決しました。
737 名前:デフォルトの名無しさん [2007/05/17(木) 01:56:51 ] CMenu の TrackPopupMenu でポップアップ表示状態で処理がいったん停止している状態のプログラムがあるとします これに対して外部からの通信などによって破棄処理がキックされたとします すると TrackPopupMenu の後の処理が終わっていないためなのかエラーとなって不正終了してしまいます これを防ぐにはどうしたら良いでしょうか? (≒ OnDestroy でポップアップを正常に終了させるにはどうしたら良いでしょうか?) ( つまり TrackPopupMenu の後の処理を実行させるということです) VK_ESCAPE をポップアップの親ウィンドウに SendMessage することなどを考え付いたのですが、 それでもうまくいかずにほとほと困っております 何かご存知でしたら教えてくださいm(_ _)m
738 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 18:27:58 BE:27175027-2BP(222)] >ポップアップ表示状態で処理がいったん停止している状態 にならないようにする=時間のかかる処理の合間にメッセージループを回すようにする
739 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 18:39:02 ] >>738 TrackPopupMenu の動作を知らんのか
740 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:15:39 ] >>737 >TrackPopupMenu の動作云々の前にお前が何をしたいのかが解らんなw
741 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 10:29:32 ] >>737 EndMenu
742 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:17:31 ] CStringのFormatMessageはFORMAT_MESSAGE_FROM_SYSTEM使えないですか?
743 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:43:18 ] CString::FormatMessageのソース見ればわかる
744 名前:デフォルトの名無しさん [2007/05/22(火) 00:53:15 ] >>741 情報ありがとうございます ところで、その関数はどのように使用すればよろしいですか? インターネットで検索してみたのですが、適切な情報が見つからなかったのですが……
745 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:55:02 ] >>744 ttp://msdn2.microsoft.com/en-us/library/ms647637.aspx
746 名前:デフォルトの名無しさん [2007/05/22(火) 22:37:22 ] >>745 ありがとうございます 英語ですか…… 中学の時英語は常に1or2だった自分には辛いですねorz
747 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 05:34:15 ] Win32APIに(*´Д`)ハァハァできるようになれば、すぐ読めるようになるよ♪ マニュアル英文だから変な構文も使われていないし、まともに日本語訳する必要も無い。
748 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 14:33:09 ] CMainFrame::OnInitMenuPopup()で メニューのポップアップ内を動的に作ろうとしてるんですけど、 このポップアップ項目の種類(たとえば「お気に入り」とか)は どうやって調べればよいのでしょうか。 ポップアップ項目自身にはIDは付けられませんよね。 メニューの複数箇所やコンテキストメニューにも 同じ「お気に入り」ポップアップを置きたいので、 OnInitMenuPopup()の中で「お気に入りかどうか」を判断したいのですが。
749 名前:デフォルトの名無しさん [2007/05/25(金) 18:33:49 ] 誘導されてきました。 通信受信プログラムで受信データをエディットコントロール(複数行表示)に表示しているのですが、 以下のコードでは、エディットコントロールに文字列を追加する際に必ずスクロールされてしまいます。 スクロールされない方法を教えてください。 LineScrollで戻すと、1行書くごとに「下へスクロール→上へスクロール」となり、上下にスクロールが発生してしまい とても見づらくなってしまいます。 「スクロールなし」でエディットコントロールに文字列を追加できないものでしょうか? int iLen = edit->GetWindowTextLength(); edit->SetSel(iLen, iLen); edit->ReplaceSel("Hello\n"); WinXP & Visual Studio 2003 & mfc7です。
750 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 18:36:41 ] >>749 pc11.2ch.net/test/read.cgi/tech/1178432985/594 の名前欄は調べた?
751 名前:デフォルトの名無しさん [2007/05/25(金) 19:09:59 ] >>750 そ、そんなところに... (^^;) やってみます。
752 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 12:43:26 ] ただいま、印刷のテストをしてます。 ネットで見つけたサンプルコードで、印刷はできたのですが、 ものすごく遅いのです。 3000*3000の画像をプリントするのに、1時間かかります! WindowsXPですが、他のアプリから印刷する場合は数分で印刷できるので、 プリンタやOSやドライバの問題ではなく、プログラムの仕方の問題だと思うのですが、 単純にプリンタ用のpDCに画像を送るだけでは速くはならないのでしょうか?
753 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 12:51:16 ] 以下は、ネットで見つけたサンプルコードで、このままでパターンが印字されます。 〜View::OnFilePrint(){ CPrintDialog myPtDlg(FALSE); HDC myPtDC; CDC myDC; DOCINFO myDocInfo; if(myPtDlg.DoModal() == IDOK){ myPtDC = myPtDlg.GetPrinterDC(); myDC.Attach(myPtDC); myDocInfo.cbSize = sizeof(myDocInfo); myDocInfo.lpszDocName = NULL; myDocInfo.lpszOutput = NULL; myDocInfo.lpszDatatype = NULL; myDocInfo.fwType = 0; myDC.StartDoc(&myDocInfo); CDC* pDC=GetDC(); myDC.StartPage(); for(y=0;y<3000;y++){ for(x=0;x<3000;x1++){ myDC.FillSolidRect(x,y,1,1,RGB(x,y,+y)); } } myDC.EndPage(); myDC.EndDoc(); ReleaseDC(pDC); ::DeleteDC(myPtDC); } }
754 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 13:06:10 ] すみません>>753 の訂正です。CDC* pDC=GetDC(); は不用でした。 >>753 のコードをいじれば画像も印刷できるのですが、遅いです。 たとえば、下のように記述すると速いのですが、 for(y=0;y<30;y++){ for(x=0;x<30;x1++){ myDC.FillSolidRect(x,y,100,100,RGB(x,y,x+y)); } } 大きい画像の場合は、1ドットずつ描くしかないですよね?
755 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 14:11:23 ] いいえ
756 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 15:04:14 ] >>754 なんで大きい画像だと1どっとずつやるしかないの?
757 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 15:48:38 ] >>756 1ドットずつやらないで済む方法があれば、それを知りたいわけです。
758 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 16:25:45 ] 頭悪いな
759 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 16:59:17 ] >>757 小さい画像は1ドットずつじゃないの?
760 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:00:51 ] ドットインパクトプリンタの話はスレ違いだぞ
761 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:04:24 ] 試しに3000*3000のビットマップ印刷してみれば?
762 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:08:29 ] >>757 BitBltとかいう関数ねぇ?
763 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:09:47 ] >>760 みたとこアホの子なので問題の切り分けなんて無理でしょう
764 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:28:15 ] 1ドット書くのにFillSolidRect使うアホ
765 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:41:42 ] もうちょっと頭使ってもバチ当らないよねw
766 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 17:59:20 ] 3Dを使うゲームよりドット絵のゲームが好きだ!!!!
767 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:13:36 ] >>766 ∧_∧ ( ・ω・) <俺にそんなこと言われてもね ( MFC ) ./ つ ( / ̄∪ ∧_∧ ( ・ω・) <どっちかっていうと俺の出番じゃね? ( GDI+) ./ つ ( / ̄∪ ∧_∧ ( ・ω・) <いやいや俺だろ (DirectX) ./ つ ( / ̄∪
768 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 18:15:28 ] >>755-766 そんなことを言ってる貴方たちも、本当は知らないのでしょう? それとも印刷に関しては企業秘密かなんかですか? 自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。 一緒に問題を解決しようという気持ちはないわけですか? 自分が知ってる方法が、最善だという確信があるわけですか? BitBltを使う方法はもちろん知ってます。 ただ、それだと若干手順が増えますのでね。
769 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:22:16 ] >>768 だから俺がBitBltって教えてやったじゃんw
770 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:22:16 ] おぬしなにやつじゃ
771 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:25:19 ] >>768 何様だよお前w BitBlt抱えて空へ羽ばたけよw
772 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:26:18 ] >そんなことを言ってる貴方たちも、本当は知らないのでしょう? 適材適所なので、あんたの求めるケースの適切解は内容が判らない限り説明しようが無い。 >それとも印刷に関しては企業秘密かなんかですか? 企業秘密にならない範囲でなら説明するに吝かではない。 >自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。 勝手に判られても困る。寧ろ、それが判ると言い張るならもう少し言葉を選べ。 >一緒に問題を解決しようという気持ちはないわけですか? ないな。 >自分が知ってる方法が、最善だという確信があるわけですか? いいや、あくまでも適材適所。 >BitBltを使う方法はもちろん知ってます。 >ただ、それだと若干手順が増えますのでね。 増えるから何? 手順が増えてもそれが適切解なら選択すべきでは? #適切解かどうかは知らんが。
773 名前:印刷が遅いのですが mailto:sage [2007/05/26(土) 18:42:00 ] >>772 >>ただ、それだと若干手順が増えますのでね。 >増えるから何? 手順が増えてもそれが適切解なら選択すべきでは? そうですか。 だらだら、手順が増えていいなら、どんなこともできますよ。 一応、なるべく、簡潔なコードで、よりよい効果を期待してプログラムをしてるわけで、 コードの増えるBitBlt以外にも方法があるかどうか知りたかったのですが、 BitBltが最善なら、それで行くことにしますよ。
774 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 18:46:19 ] ダメだこりゃ
775 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:09:17 ] 馬鹿な・・騙りじゃなかったのか
776 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:15:19 ] apiを無駄に3000*3000回呼んでも見た目が大事だよな
777 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:23:20 ] >>773 おお、成長したじゃんw 1ドット書くのにFillSolidRect使ってたアホの言葉とは思えないねw
778 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:03:39 ] >>777 sylphys.ddo.jp/upld2nd/manani2/src/1180177396812.jpg
779 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:43:50 ] まあ、昔は大きな画像をプリンタDCに BitBlt出来なかったって事はある。 だから、ひとつひとつFillRectしたような実装や、大きいBitmapを小さく小分けしてBltしたりとか、 そりゃ小技を使ったよ。 それ、いまでも、ダメなのかな。
780 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:05:18 ] いくらか小分けにすればいいだけであって1ドットずつはやらんよなw
781 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:29:43 ] もっと簡潔なやり方があるに違いない病だな
782 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 07:14:12 ] WinMainの記述はどこのフォルダのなんと言うファイルに書かれていますか?
783 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 07:42:55 ] >>782 君の心の中に・・・
784 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 09:22:51 ] appcore.cpp(96): // in non-running state until WinMain appmodul.cpp(19): // export WinMain to force linkage to this module appmodul.cpp(21): extern int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, appmodul.cpp(25): _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, appmodul.cpp(28): // call shared/exported WinMain appmodul.cpp(29): return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow); appterm.cpp(27): // Standard cleanup called by WinMain and AfxAbort makefile(402): $D\winmain.obj $D\barcore.obj $D\bartool.obj $D\bardlg.obj \ wincore.cpp(3553): // Standard init called by WinMain winfrm.cpp(762): nCmdShow = pApp->m_nCmdShow; // use the parameter from WinMain winmain.cpp(18): // Standard WinMain implementation winmain.cpp(21): int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, alpha\mfc42.prf(961): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PADH@Z alpha\mfc42u.prf(761): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PAGH@Z intel\mfc42.def(1341): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1576 NONAME intel\mfc42.prf(466): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z intel\mfc42d.def(949): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1190 NONAME intel\mfc42u.def(1334): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1569 NONAME intel\mfc42u.prf(321): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z intel\mfc42ud.def(946): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1187 NONAME