- 1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5。
- 762 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:38:36 ]
- >>760
斯くなる上は、fwrite(buff, sizeof(buff), 1, stdout)だ。 # 変わらんと思うけどねぇ。
- 763 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:40:54 ]
- >>760
sizeof(buff)を変数に移して使った方が速いんじゃないかな
- 764 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:49 ]
- >>763
sizeof(buff)は定数だから心配なし。
- 765 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:51 ]
- >>761
それだけじゃエスパーじゃない限り返答不能です。 ダイアログ呼び出し前後のソースを公開してください
- 766 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:59 ]
- 質問です。最小化の動作って、指定した座標などに向かって動作させられますか?
可能ならどんな関数を使えばいいか教えて下さい。お願いします。
- 767 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:48:29 ]
- >>764
そうなん?てっきり値が変わらなくても毎回サイズ計算するものだと思ってたよ
- 768 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:52:14 ]
- >>766
簡単には出来ないと思うけど、自分でウィンドウサイズと位置を制御して アニメーションさせれば似たような事ができると思うよ
- 769 名前:100 [2008/02/04(月) 18:53:56 ]
- 申し訳ございません。
ソースは下記の通りです。 int PASCAL WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Ret; hPrevInstance = hPrevInstance; lpCmdLine = lpCmdLine; nCmdShow = nCmdShow; // Create Dialog Ret = DialogBox( hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DIO_Sample ); return Ret; } 前回実行させて動作確認できたときから何も触っていない状態で、 今日実行させたらリソース画面が出てこなくなりました。 プログラムの問題なのでしょうか?
- 770 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:57:07 ]
- >>767
計算するって言ったって、何を計算すると思ったのかね。 まさか、size_t foo = 4; は計算すると思わないだろ? size_t foo = sizeof(int); は? 勿論、size_t foo = sizeof(buff); だって同じことだ。
- 771 名前:757 mailto:sage [2008/02/04(月) 19:00:30 ]
- >>762
おぉ!これは速そうですね!
- 772 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:10:53 ]
- >>768
そのアニメーションをさせる関数が分かりません; SystemParametersInfoはアニメーションを指定の座標へ行わせるものではないんですよね? なんて検索したら見つかるでしょう・・
- 773 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:32:34 ]
- 何がしたいのかいまいち分からないな。
既定の動作だと最小化するとタスクバーに入るけど それをどうしたいの? もしかしてタスクトレイに入れたいとか?
- 774 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:33:40 ]
- >>772
定期的にSetWindowPosでも呼び出して座標とサイズを指定してやればいいんじゃないかと
- 775 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:50:10 ]
- >>770
計算というか、中にある型やバッファのサイズの値を調べて取得する処理って事かな 内部的動作に詳しくないから、そういう処理は別になくて、バイナリコード的には 調べたサイズの値が直接入っているかもしれないけど。
- 776 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:08:44 ]
- wikiをみると「コンパイル時に計算される」とあるね。
てことはバイナリコード的には取得した結果が直接入ってるって事か ttp://ja.wikipedia.org/wiki/Sizeof
- 777 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:14:24 ]
- >>773
そうです。タスクトレイへアニメーションつきで最小化をさせようと考えてます。 今、タスクトレイの座標取得をし、GetWindowRectで自ウィンドウのサイズを取得し、 DrawAnimatedRectsで自ウィンドウ位置からタスクトレイへアニメーションを考えてやってるんですが、少々問題がありまして。 文で説明するのが難しいんですが、ウィンドウは最大化状態ではないのに、アニメーションがウィンドウ一杯のメニューバーの大きさから タスクトレイへ向かってアニメーションされてしまいます。それを自ウィンドウサイズに合わせる方法が全く分からず悩んでます。 >>774 DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか?
- 778 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:15:53 ]
- XPでの最小化の挙動を見ると、タイトルバーだけが縮小しながらタスクバーに向かう感じだな
同じような挙動にしいなら、タイトルバーサイズのサブウインドウを用意して それを縮小アニメーションさせつつ指定座標に移動させていき、指定座標にたどり着いたら 元のウィンドウを非表示にする必要がある。 何に使うのかは知らないけれど。
- 779 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:30:35 ]
- >>777
よくわからんけど、>>778の一行目みたいなウィンドウズ準拠の動きは嫌だってこと? ウィンドウ全体が縮小しながら移動するようにしたい? そうなるとやっぱ定期的にSetWindowPosでセットするしかないんじゃない?
- 780 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:39:35 ]
- >>777
>DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか? GetWindowRectで取得したRECT構造体のデータを使いたいって意味なら RECT構造体っていうのは、 left→左上座標 X top→左上座標 Y right→右下座標 X bottom→右下座標 Y の4つで構成されてるデータ。 SetWindowPosにはleft、top,、right - left、bottom - top の値を設定すればいい
- 781 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:41:16 ]
- >>779
>>778のような動きをさせたいんで回答としては有難いものなんですが、タイトルバーサイズのサブウィンドウを用意する必要があるんでしょうか? DrawAnimatedRectsのRECT構造体はタイトルバーサイズの数値が入ってればいいってものではないんですか? 開始点のRECTには、タイトルバーサイズの数値がそれぞれのメンバに入ってるんですが、 何故か最大サイズのタイトルバーからアニメーションが始まります・・ てゆーか、新しくそれ用にサブウィンドウを用意するのが良く分からない・・・w それもまた調べなければですね^^;
- 782 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:43:44 ]
- >>780
レスが食い違いました。 ちなみになんですが、SetWindowPosってのはウィンドウレベルの指定と、ただ画面を動かすものではないんですか?
- 783 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:46:58 ]
- SetWindowPosはサイズも指定できるよ
というかDrawAnimatedRectsAPIで普通に>>778の動きになるような気がするんだけど 実際にそういうの作ったことないから俺は発言控えた方がいいな。 混乱させるだけみたいだし。
- 784 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:09:18 ]
- >>782
と、言いつつ、試しにコレだけやってみたけど普通に動いてるよ なんか範囲の設定が間違ってるんじゃない? RECT rect, rect2; GetWindowRect( hWnd, &rect); rect2.left = 750; rect2.top = 580; rect2.right = 800; rect2.bottom = 600; DrawAnimatedRects(hWnd, IDANI_CAPTION, &rect, &rect2 );
- 785 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:17:00 ]
- >>784
ありがとうございます。 私のは何が違っているのか判明しました。 上ではタスクトレイの座標を取得し、と書きましたがトレースしたら取得できてませんでした;; HWND tray; RECT stray; tray = FindWindow("ModelApp","SysPager"); GetWindowRect(tray,&stray); では取得できてませんでした。 DrawAnimatedRectsの方の使い方や考え方はあってたのに、こっちが違ったとはorz FindWindowはこの記述じゃいけないんですかね? ModelAppはエントリポイントで指定したClassNameです。
- 786 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:29:37 ]
- >>785
参考になるかな?これまたやった事ないんで確証はないけど ttp://www.geocities.jp/g_e_k_o_g_e_k_o/column/column.html
- 787 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:24:42 ]
- >>786取り敢えずなんですが、以下のように記述してやってみましたが出来ませんでした;
HWND getTrayToolbar(HWND hToolbar) { HWND hTrayWnd, hNotifyWnd, hSysPager; hTrayWnd = ::FindWindow("Shell_TrayWnd", NULL); if (hTrayWnd == NULL) return NULL; hNotifyWnd = ::FindWindowEx(hTrayWnd, NULL, "TrayNotifyWnd", NULL); if (hNotifyWnd == NULL) return NULL; // OSの違いを吸収 // SysPagerが取得できなかったときは、win2000,Meと仮定し、 // TrayNotifyWnd直下にToolbarWindow32がある可能性にかける。 hSysPager = ::FindWindowEx(hNotifyWnd, NULL, "SysPager", NULL); if (hSysPager == NULL) hSysPager = hNotifyWnd; hToolbar = ::FindWindowEx(hSysPager, NULL, "ToolbarWindow32", NULL); return hToolbar; } HWND tray; RECT stray; getTrayToolbar(tray); GetWindowRect(tray,&stray); これでstrayに座標が入ってるはずなんですが、表示してもちゃんとした数値は入ってませんでした。
- 788 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:31:40 ]
- >>786
変に改造したのがよくなかったです。 HWND getTrayToolbar(HWND hToolbar) { を HWND getTrayToolbar(void) { に戻し、 getTrayToolbar(tray); を tray = getTrayToolbar(); にしたところ取得できました。 初心者の分かりづらい質問にも親切に答え、参考サイトを調べて頂いたりトレースして頂いたり本当に有難うございました!
- 789 名前:デフォルトの名無しさん [2008/02/04(月) 23:38:23 ]
- Visual C++6.0 (WinNT4.0)で古いシステムのメンテナンスをやることになって
しまいました。VB5.0/6.0やVB.NET,C#.NETは使ってきましたがC++を実務で するのは初めてです。 ソースを修正してデバッグモードで実行しても、デバッグウィンドウで表示される 結果は元のソースでの処理結果のままなのですが、こういうものなのでしょうか。 (ビルドして生成したDLLは修正したとおりに動く) また、ビルド時に構成でReleaseとDebugが選択できますが、これの違いは なんでしょうか。構成をDebugにしてもDLLは生成されますが、本来はReleaseで 作るべきものなのでしょうか。
- 790 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:13:20 ]
- Debugビルドだと色々なエラーチェック用のマクロが定義されたり、
メモリ領域を利用する前に特定の値で初期化したりしてバグを発見しやすくしたり、 実行ファイルにデバッグ用の情報を埋め込んだり、最適化を無効にしてデバッガで追いやすくしたり。 つまり、デバッグ向けで速度が遅い、実行ファイルがでかい。 なので開発はDebugビルドで製品として出す場合はReleaseビルドかな。普通は。 VC6.0しらないし、デバッグウィンドウが何を指して言っているのか分からないけど Releaseビルドだとうまくデバッグできないかもね。
- 791 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:31:39 ]
- 済みません、教えてください。
VC++で作ったプログラムで、例外が発生したときにデバッグ情報をファイルに 書き出すようにしたいと思うのですが、変数領域についてよく分からないのです。 ファイルアクセスとか例外が起きそうなところに__try,__exceptブロックを作って GetExceptionInformation()で例外情報を取り込んで、 レジスタの値を調べて、スタック情報を記録するところまではできました。 ただ、これだけだとポインタの指すデータが残らないので不便だと思い、 データの領域も記録しようと思うのですが・・・どこら辺を記録すればいいのか 分かりません。 いろいろ調べたところ、.dataセクションと.bssセクションの領域はファイルヘッダから 計算できる(他に方法があれば教えてください)ことは分かったのですが、ヒープ領域の アドレスってどうやって調べればいいのでしょうか? あと、変数って.dataセクションと.bssセクションとスタックとヒープ領域に作られる と思ってたんですけど、他の領域にも作られるんですか? 済みませんが、よろしくお願いします。
- 792 名前:789 [2008/02/05(火) 00:36:53 ]
- >>790
ご回答ありがとうございます。 やはりReleaseビルドですべきですか。 ちなみに今、デバッグウィンドウに処理結果が反映されない、といっているのは Debugビルドのものです。
- 793 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:44:59 ]
- >>792
デバッグウィンドウってのは自動変数とかをのぞく奴? ブレークポイント仕掛けてステップ実行してけば普通は値が反映されると思うけど。 正直よくわからん。
- 794 名前:789 [2008/02/05(火) 01:03:15 ]
- >>793
そう、普通にブレークポイントで止めて、ステップ実行しながら変数の値を 追っかけていくのですが自分が追加したロジックを無視してしまうのです。 DLLを生成するとそのロジックを反映したもので動作するので不思議です。
- 795 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:10:35 ]
- 支障がないならリビルドしてみるとか・・
- 796 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:14:45 ]
- リリースビルドで無視するのなら>>741の理由で普通にある事なんだが
デバッグビルドで無視するのは本当に飛ばしてるのか、 ブレイクポイントが適切な行に設定されてないのかどっちかかな
- 797 名前:789 [2008/02/05(火) 01:14:58 ]
- >>795
とりあえず、本来は修正結果がデバッグでも反映されるべき、っていうのは わかったのでまた試してみます。ありがとうございました。
- 798 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:22:13 ]
- >>788
その引数の渡し方だと、実際に引数として渡した変数そのものではなくて 別の変数が関数内で作られてしまうから取得はできない そういう場合は、HWND getTrayToolbar(HWND &hToolbar) と記述すると、実際に渡した変数にそのまま格納される じゃなければ、HWND *lphToolbar などとしてポインタを引数で渡すとか。
- 799 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 06:31:15 ]
- Debugビルド = VisualStudioのデッバッガ用のビルド
デバッガ入れてない環境では動作しないしない可能性がある。 ビルドしたプログラムの配布禁止(ライセンス違犯)
- 800 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:19:38 ]
- >>799
違犯ってなんだよ。違反なら判るが。 >>797 古いままのDLLが動いているって話か?
- 801 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:33:39 ]
- 関数名を入力すると引数とかがポップアップ表示される機能は、プロジェクトを作成しないと働かないみたいですが、
cppファイルとかを単体で開いた時にも機能するようにはできないでしょうか?
- 802 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:22:36 ]
- 同じ関数名だってリンクされるものが違ったら別の関数なんだから
そんなの無理に決まってるだろ
- 803 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:46:24 ]
- リンクとか関係あるの?
- 804 名前:デフォルトの名無しさん [2008/02/05(火) 21:48:18 ]
- goto label
- 805 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:16:22 ]
- >>801
秀丸に単語補完機能がある。それで似たようなことはある程度可能。 と言ってもこういう質問がでる時点でIDEとかエディタとか知識が少なめに感じる・・・
- 806 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:48:18 ]
- >>803
同名の関数を保持したライブラリやオブジェクトがハードディスク上に複数あるとする。 そのいずれも呼び出し側のcppファイルとは異なったフォルダにある。 さて、呼び出し側のcppファイルを解析するだけで、複数ある同名関数の中の どれを呼び出せばいいのかがわかるだろうか?
- 807 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:02:48 ]
- ヘッダだけで情報は充分じゃねーの。
インクルードパスさえなんとかなればな。
- 808 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:59:56 ]
- まあどうにもならないけどな。
- 809 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:17:59 ]
- >>806
どれを呼び出せばいいかなんて分かる必要があるの? 引数ならヘッダ見れば分かるし、というか分からないとコンパイルできないだろ パスの設定は見落としてた
- 810 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:14:00 ]
- VCのIDEはプロジェクトを作成して使う前提なんだから
嫌ならIDE使わなきゃいい
- 811 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:06:06 ]
- >>809
ごめんごめん。 ライブラリやオブジェクト ↓ ライブラリやオブジェクト、それに付随するヘッダ という事で。
- 812 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:30:39 ]
- しかしVSはcppとかの拡張子に関連付けたりするんだよな。
インストール直後いつものエディタが起動しないのであせるw
- 813 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:34:27 ]
- >>809
どうしてもcpp単体で見られるようにしたいと言うんなら 自分で検索するインクルードヘッダの参照パスを指定できるエディタでも作ればいいよ。
- 814 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:35:29 ]
- >>812
インストール時に関連付けの設定できなかったっけか
- 815 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:41:22 ]
- >>814
できる、、けどOSから順番に入れなおしてるとインストール順によって 状況が変わるみたい。
- 816 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:15:59 ]
- >809
だからプロジェクト作らないとコンパイルもできない。 プロジェクト作らずにコンパイルする方法もあるが
- 817 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:47:41 ]
- Unixでpthreadを使ってマルチスレッドプログラムを作ってきました。
VisualC++では何を使ってマルチスレッドにするのが一般的ですか?
- 818 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:50:07 ]
- createすれっど
- 819 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:44:23 ]
- >>817
状況によって何を使うべきかが変わるので 一般的とかそんなの無い。
- 820 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:09:27 ]
- 強いて言うなら、どれも結局Win32 APIのCreateThreadに行き着く。
- 821 名前:デフォルトの名無しさん [2008/02/06(水) 19:11:48 ]
- メニューに関して質問です。
CreateMenu(), AppendMenu() を使用して "ファイル(&F)" [POPUP] (hMenuFile) "ファイルを読み込み" セパレータ "履歴" [POPUP] (hMenuRecent)→ "&0 " + path セパレータ 終了(&X) な感じに作成し、履歴からポップアップされるpathを選んだ時に GetMenuItemRectで位置を取得しようとするのですが、 インデックスを試しに0にして値を調べて見ると、 hMenuFileの時でもhMenuRecentの時でも同じ、つまり"ファイルを読み込み"の位置情報しか取得しません。 インデックスを1にすると、0の時のtopに履歴からポップアップされたメニューの縦幅がプラスされた値になります。 ちなみに、上の二つのメニューハンドル値は、ちゃんと違う値でした。 色々条件を変えながらやってるのですが、どうしても path にあたる位置情報取得出来ず、、どの辺が間違ってるのでしょうか?
- 822 名前:デフォルトの名無しさん [2008/02/06(水) 20:55:36 ]
- 今DXライブラリをインストールとMicrosoft Platform SDKもダウンロードしてライブラリを使うためにhomepage2.nifty.com/natupaji/DxLib/dxuse_vc2005express.html#R3を参照にして設定してたんですが、
#include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ WaitKey() ; // キー入力待ち DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } で、------ ビルド開始: プロジェクト: test2, 構成: Debug Win32 ------ コンパイルしています... DrawPixel.cpp リンクしています... LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。 ビルドログは "file://c:\Documents and Settings\user\My Documents\Visual Studio 2005\Projects\test2\Debug\BuildLog.htm" に保存されました。 test2 - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== となって進みません。どうすればいいのでしょうか? よろしくお願いします。
- 823 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:13:07 ]
- >LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。
そのライブラリをリンクしてください
- 824 名前:デフォルトの名無しさん [2008/02/07(木) 08:57:44 ]
- ソリューションをビルドするとき,複数のプロジェクトを
依存関係に注意しながら並列にビルドすることができますよね? 一つのプロジェクトに含まれる複数のコンパイル単位を 並列にコンパイルさせるということは VC++ の IDE では 無理なんでしょうか? GNU make だとできるんですが,できれば IDE で できればいいなと思っています.
- 825 名前:824 [2008/02/07(木) 09:07:37 ]
- Visual C++ 2008 からは /MP があることを発見したのですが,
これって /Yc や /Gm と競合するんですね. /Yc は別途プリコンパイルヘッダを作ってやればいいだけなのですが, /Gm ってはずしちゃうと逆効果なのかなぁ. /Gm の効果をいまいち実感できていないのではずして /MP 使った方がいいですかね?
- 826 名前:デフォルトの名無しさん [2008/02/07(木) 09:40:24 ]
- //あいうえお
class Aiueo{ 定義 }; のように書いておけば IntelliSense で Aiueo のインスタンスを ポイントしたときに「あいうえお」も含めて表示してくれたり しませんかね? C++ ではコード内のコメントでドキュメンテーションするのは 無理なんでしょうか? C# だとその辺の機能があるんですが・・・
- 827 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:05:59 ]
- >>825
使った方がいいですかねじゃなくてさ 使ってみればいいじゃない
- 828 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:27:42 ]
- 本人に違いがわからないならどっちでも同じこと
- 829 名前:デフォルトの名無しさん [2008/02/07(木) 13:17:27 ]
- カット&ペーストなどによりインデントの違う
コード(タブが 2 と 4)が混在しているとき、 一気に整形し直すことってできないでしょうか? C#では貼り付けた時に自動的に整形してくれるのですが C++では無理ですか?
- 830 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:26:29 ]
- C++は知らないけど
VC++のエディタでできたと思う
- 831 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:41:29 ]
- C++の質問はC++スレですればいいよ
- 832 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:47:20 ]
- >829
CでよければK&Rにタブをスペースに変換する演習問題があったよ
- 833 名前:デフォルトの名無しさん [2008/02/07(木) 13:51:19 ]
- >>831 Visual C++ の IDE のエディタでの話です
- 834 名前:デフォルトの名無しさん [2008/02/07(木) 15:09:09 ]
- IntelliSenseでメンバーの補完をしようと一覧を
出しているとき private や protected のメンバを 一時的に隠したいとかできますか? どうせアクセスできない基底クラスのメンバがずらずらと・・・
- 835 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:45:42 ]
- そんなことができるって話は聞いたことないです
- 836 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 19:40:58 ]
- >>829
Alt + F8 かな。
- 837 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:18:48 ]
- >>834
>一時的に隠したいとかできますか? 「一時的に隠したい」と願うことはできます。
- 838 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:32:02 ]
- Visual Studio 2005を使ってるんですが、
F5でデバッグ開始をすると一瞬だけ 「オブジェクト テスト ベンチ」 とタイトルバーに書かれたウィンドウが表示されます。 これを非表示にする設定などありますか?
- 839 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:42:50 ]
- 出ましたお得意揚げ足取り
- 840 名前:ああ [2008/02/08(金) 01:14:26 ]
- [質問]マウスクリックすると、そのクリックされた座標にビットマップでつくったキャラクターが移動するといったものを作りたいです。
OnTimer(UINT nIDEvent)やOnLButtonUp(UINT nFlags, CPoint point) にいろいろ記述してみましたが、うまくいきません。どなたか教えてください!
- 841 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:19:56 ]
- >>838
Ctrl+F5 or DOS窓からEXEを直接実行
- 842 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:27:52 ]
- 揚げ足取りされるのが嫌なら正確な日本語を書けるように頑張りましょう
- 843 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:31:45 ]
- >>840
そのマウスクリックとやらが、どこをクリックするのかによっても変わってきます。 いろいろ記述してみましたとは、何を記述したのでしょうか。 上手く行かないというのは、何が上手くいかないのでしょうか。 その質問で答えが返ってくると本気で思っているのですか?
- 844 名前:デフォルトの名無しさん mailto:はげ [2008/02/08(金) 01:39:20 ]
- >>842
揚げ足取ってもいいけど答えになってないならレスしなきゃいい 自分はわかってるような言い方して結局説明しないとかね そんならとっととこのスレから消えればいいじゃん
- 845 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:41:10 ]
- いいからあげんなよはげ。
揚げ足取られて悔しいのはわかるが見苦しいだけだぞ。
- 846 名前:ああ [2008/02/08(金) 01:55:33 ]
- >>843
指摘ありがとうございます。 記述した内容を載せようと思ったら 行が多すぎるとのエラーがでたので分けてかきます! ////////////////////////////////////// x1,y1はBITMAPキャラクターの座標です。 x2,y2はクリックした位置の座標です。 ////////////////////////////////////// void CMiyazaki_anime1View::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください SetTimer(ID1, TIMER_TEXT1, NULL);//テキスト1を処理するタイマーセット CView::OnLButtonUp(nFlags, point); }
- 847 名前:ああ [2008/02/08(金) 01:56:37 ]
- つづき!
void CMiyazaki_anime1View::OnTimer(UINT nIDEvent) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください if(nIDEvent == ID1){ //IDによって処理を変える if(x2>x1 && y2>y1){ for(i=10,j=10;i<=x2-x1,j<=y2-y1;i++,j++){ x1+=i; y1+=j; } CRect rc; GetClientRect(&rc); bmpID = (bmpID+1) % 3; //表示するBMPを変更する } と今は記述しています。 OnTimerのif文に関しては、このときの条件で成功したらさらにif文を追加 しようとおもったのですが、失敗したためこれしか書いていません。 また、これで実行すると、キャラクターがいっきにマウスクリックした場所に 移動してきてしまいます。 キャラクターが歩くようにスムーズに動いてほしいです。 ちなみにクリックする場所はウインドウ内です。
- 848 名前:デフォルトの名無しさん [2008/02/08(金) 09:38:34 ]
- msdn2.microsoft.com/en-us/library/aa448631.aspx
コード中のコメントを IntelliSense で表示させる機能は Visual Studio 2005/2008 にはついていないの?
- 849 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:44:07 ]
- TODOのコメントはそこに何か書いたら消せよw
少なくともここにあげるときくらいは。 for文の判定式のカンマは意味があるのか?
- 850 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:28:42 ]
- >>847
MouseButtonDownで、マウスの位置をメンバ変数に保存する。 Timerイベントが発生するたびに保存した位置に少しづつ移動させる。
- 851 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:33:56 ]
- VC++6.0とSDK。新規ダイアログ挿入からダイアログリソースを操作
出来ますが、クラスウィザードを使おうとするとオブジェクトIDが 出ないので何もできないです。解決方法はありますか?
- 852 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:17:44 ]
- 何をやりたくてクラスウィザードを使おうとしてるわけ?
クラスウィザードが何かわかってる?
- 853 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:09:11 ]
- やりたいことはデータの受け取り。オブジェクトID(IDD_EDIT1みたいなの。)
が出ないからメンバ変数が設定できずに値のやり取りが出来ない。 エディトボックスから数値の受け取りが出来れば方法は何でも良いけど。
- 854 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:13:30 ]
- >>851
MFCクラスの作成>CDialogで作れる。
- 855 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:47:02 ]
- 挿入 、クラスの新規作成、からGenericクラス以外選択できない
のですがMFCクラスの作成はどうすればよいのでしょうか?
- 856 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:08:10 ]
- >>855
MFCプロジェクトで無いなら諦めろ。 Express版は論外。
- 857 名前:821 [2008/02/08(金) 20:41:10 ]
- 他のレスに埋もれてしまったみたいですが、
>>821のような状況が未だに解決出来ず、助言頂けませんでしょうか。。
- 858 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:28:37 ]
- 読む気がしないからスルーだろ
- 859 名前:838 mailto:sage [2008/02/08(金) 21:36:20 ]
- >>841さん
ありがとうございます Ctrl+F5 or DOS窓ではなくF5の時出さないようにしたいんです。 一瞬しかでないんで、バーをクリックして消そうとしたんですが無理だったんで。 デバッグ中に表示→その他のウィンドウで消そうかと思ったんですが、 デバッグ中だけ「オブジェクト テスト ベンチ」の項目もなくなっていて… F5の時でないようにするのは無理なんでしょうか? 質問の仕方が悪くてすいません。
- 860 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:47:22 ]
- スルーだな
- 861 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:52:21 ]
- その問題にメリットが感じられないので興味がわかない。
- 862 名前:デフォルトの名無しさん [2008/02/09(土) 00:25:56 ]
- >>853
回答ありがとうございます! 「Timerイベントが発生するたびに保存した位置に少しづつ移動させる。」 ときの記述法が分かりません。ただ単に動かすのはx+=10;(xはキャラクターのx座標) ですよね? 今の場合はどのように記述したらよいのでしょうか?
|

|