★初心者にVisual C++ ..
49:デフォルトの名無しさん
08/02/17 03:06:06
>>47
Win32コンソールでいいかなあ
Makefileは昔のVCは作れたけど、今のは無理かな
まあMAKEだけ別管理にするのがよさげ
50:デフォルトの名無しさん
08/02/17 03:16:17
>>47
Cygwin入れた方が手っ取り早いと思う。
51:デフォルトの名無しさん
08/02/17 03:26:55
>>49
なるほど。サンクス。
>Makefileは昔のVCは作れたけど
「全般」っていう種類のプロジェクトにメイクファイルプロジェクトっていうのがあるけどこれ?
>>50
今wikipedia見たらvmwareみたいなやつか。
vistaで不安定って書いてあったからちょっと引け腰。
52:デフォルトの名無しさん
08/02/17 05:04:57
vmwareとはエミュレートするレベルが違う
vistaで不安定ならvmwareにXPでも入れて動かせばいいじゃない
53:デフォルトの名無しさん
08/02/17 05:09:57
>>52
vmwareを入れるのならXPでなくターゲットのlinuxそのものをその上にインストールすればいいんじゃないかw
>>51
エミュレーションソフトを入れて大学のlinuxと同じもので開発環境を構築してみては?
54:47
08/02/17 05:50:19
再度すみません。>>47です
とりあえずmakefileプロジェクトでクラスを書いてメインで動作確認のコードを書いてみたんですが、
ビルドを押すと、
実行するビルド コマンド ラインがありません。
と出てしまってよく分からないんだけれどこれはどういう状態です
google先生でも一応調べたんですが分からないっす。
55:デフォルトの名無しさん
08/02/17 08:09:53
>>54
その無駄な努力はやめて、CDブート可能なLinux使うかCygwin入れるかしろ。
56:デフォルトの名無しさん
08/02/17 08:18:34
なんとしてもVCでやりたいんだなwww
57:デフォルトの名無しさん
08/02/17 09:02:26
>>54
makefile プロジェクトは実行するコマンドから全て自分で指定
しないといけないから、君にはまだ無理。
そもそも、Visual Studio には make コマンドなんかついてない
ことすら知らないでしょ?
nmake で代用することもできるけど、makefile の文法が gmake
とは違う部分があるので、お勧めしない。
他の人が書いてるように、VMware とか入れて Linux 走らせるの
がいいと思う。VMware が不安と言うなら VirtualPC でやれば
MS の加護が受けられるのでちょっぴり安心かもしれない。
(まともに使ったことないからよく知らんけど。)
58:デフォルトの名無しさん
08/02/17 09:39:08
だからもう、vmwareじゃなくてCDbootのLinuxでいいよ。キノピなら問題ないでしょ。
59:デフォルトの名無しさん
08/02/17 09:44:31
別にcygwinでいいだろ
60:デフォルトの名無しさん
08/02/17 09:53:41
VC関係ない
61:デフォルトの名無しさん
08/02/17 12:13:50
URLリンク(itpro.nikkeibp.co.jp)
vmware + linux
無料だお
62:デフォルトの名無しさん
08/02/17 12:44:13
>57
Windowsの上に載ってるVirtualPCにはMSのサポートがあるけど、
そのVirtualPCの上に載ってるLinuxはどこがサポートするんだゐ?
63:デフォルトの名無しさん
08/02/17 13:14:38
サポートがいるなら、
Windows Vista / VirtualPC 2007 ->
WindowsXP / VirtualServer 2005 R2 SP1 ->
Red Hat Enterprise Linux
ってやればいいんじゃないかな。
64:デフォルトの名無しさん
08/02/17 13:35:59
OSだけで何万費やすつもりなんだw
65:デフォルトの名無しさん
08/02/17 14:09:46
環境を同じにするんじゃなけりゃ、ソースだけを共通にするほうが面倒がないよ。
まあ環境同じが楽だけど、行ったり来たりするほうが鍛えられる
66:デフォルトの名無しさん
08/02/17 15:15:04
という勘違いした人が一人いると無駄な作業が増える。
67:デフォルトの名無しさん
08/02/17 15:21:11
同じソース使うことのどこが勘違いなんだか。
デバッガにVCが使えるメリットは大きい。
68:デフォルトの名無しさん
08/02/17 15:22:42
いまだにデバッガとか使うやついるの?
printfで十分だろ
69:デフォルトの名無しさん
08/02/17 15:23:34
まあprintfで十分な規模ならprintfで十分
70:デフォルトの名無しさん
08/02/17 15:32:54
学校で作るもんなんてそんな規模だろ
71:デフォルトの名無しさん
08/02/17 19:17:13
すみません、ちょっと質問です。
ダイアログにwebbrowserコントロールとボタンコントロールを貼り付けて
ボタン押下でgoogleのページを表示させています。
その時にフォーカスがgoogle検索ページの
エディットボックスにフォーカスするのですが、
このフォーカスを移動させたくない場合、どのようにすれば良いでしょうか。
Navigate2のメソッドを利用しており、このメソッドのフラグを調べてみましたがないようです。
また、webbrowser2側でSetFocus()をオーバーライドしようとするも
webbrowser2側ではSeFfocus()を呼んでないようです。
webbrowser2にフォーカスを移動させない方法ってありますでしょうか?
72:デフォルトの名無しさん
08/02/17 19:22:21
javascriptをoffにすればいいんじゃない?
73:デフォルトの名無しさん
08/02/17 19:50:21
>>72
ありがとうございます!
IEのオプションでjavascriptをオフにしたらフォーカスが移動しなくなりました。
今現在は自分だけのローカルPCだけに反映されると思いますが、
他のPCでも有効にするためには、Navigate2のheaderとかに組み込めばいいのかな…
とりあえず、調べてみます。
ありがとうございました。
74:デフォルトの名無しさん
08/02/17 20:22:14
C++とC++/CLIは微妙に違うらしいのですが、素のC++の勉強がしたい場合「空のプロジェクト」というやつでプログラムを書けばいいのでしょうか?
75:デフォルトの名無しさん
08/02/17 21:04:10
>>74
CLR ではなく、Win32 で
76:デフォルトの名無しさん
08/02/17 21:21:11
>>75
最初それのコンソールアプリケーションというのを選べばいいのかなと思ったのですが、
mainの代わりに_tmainというのがあったので、違うのかなと思ってましたが、気にしなくていいんでしょうか・・・?
あ、すみませんVisual C++ 2008 Express Editionをインストールしました
77:デフォルトの名無しさん
08/02/17 21:34:49
_tmain はあんまり気にしなくていい。
消して問題ない。
78:デフォルトの名無しさん
08/02/17 21:40:12
>>77
ありがとうございます、気にしないで進めることにします
79:デフォルトの名無しさん
08/02/18 16:15:02
テンキーの+ボタンはVK_ADDフラグで取得出来るのですが、
ノートPC等でテンキーが付いてない場合、
+キーに相当するキーが押されたかを検出するには、
どのようししたら、良いでしょうか?
+
;れ
↑
このキーのフラグは?
80:デフォルトの名無しさん
08/02/18 16:17:26
>>79
ノートPCでもFnキー併用とかNumLock併用でVK_ADDを発行すると思うけど。
81:デフォルトの名無しさん
08/02/18 16:17:53
「;」か「シフトand;」ってわけじゃないの?
82:デフォルトの名無しさん
08/02/18 16:23:19
それだったらフルキーボードでも使えるわけで、だとしたらVK_ADDでは当然拾えないのだけれど。
83:79
08/02/18 16:25:14
シフトを押されてなくとも、「;」が押されたら+を押したと解釈してあげたいのです。
case ';'では引っかからず、case -69で引っかけられました。
(デバッグモードでメッセージ見ました)
-69って一体・・・・?
case ';'で掛からないのが納得行きません。
84:デフォルトの名無しさん
08/02/18 16:30:14
ちょっと待て、私のキーボードではShift+;は:なんだが。
つーか、Shift+=が+なんだが。
85:79
08/02/18 16:37:45
英語キーボード配列
とかいろいろありそうですね・・・
素直にShiftキー押してもらおうかな・・・
86:デフォルトの名無しさん
08/02/18 16:38:40
つまり、ややこしいことに日本語キーボードでは';'キーはVK_OEM_PLUS(0xbb = -69)であり、
英語キーボードでは';'キーはVK_OEM_1になると。英語キーボードで'+'の刻印がある'='キーはVK_OEM_PLUSなんだけどね。
87:デフォルトの名無しさん
08/02/18 20:48:31
これだな
#define VK_OEM_PLUS 0xBB // '+' any country
88:デフォルトの名無しさん
08/02/18 21:07:33
c++にかぎったものじゃないんですが、
今ゲーム作っててマス移動の当たり判定なら変数でなんとかなるけど
ドット単位であたり判定作ろうとしたらどういう風に管理すればいいんですか?
89:デフォルトの名無しさん
08/02/18 21:30:31
ドット単位で当たり判定もてばいいじゃない
1ドット1ビットで十分だが、面倒ならcharで取るとかな。
90:デフォルトの名無しさん
08/02/18 21:31:50
あと、マップに属性もたせるならそれ相応のビット数が必要
91:デフォルトの名無しさん
08/02/18 21:36:03
円形なら半径だけもっとけばいいし、
正方形なら角度も保持しとけばいい。
あとは数学的に判定。
範囲が極端に小さければ
マス移動と似た形で判定してもいいかもね。
92:デフォルトの名無しさん
08/02/18 22:53:18
ちょっと質問です
cliext::hash_map<array<char> ^, int> って型を作りたいんですが、
比較演算子の定義の仕方がわかりません
一応、こんなのを比較演算子として予定してます
int compare(array<char> ^left, array<char> ^right){
if (left->Length == right->Length){
for(int i = 0; i < left->Length; i++){
if (left[i] != right[i]) return left[i] < right[i] ? -1 : 1;
}
return 0;
}
return left->Length < right->Length ? -1 : 1;
}
どうすればいいんでしょう…
93:デフォルトの名無しさん
08/02/18 23:59:51
STLと同じで、比較関数は基本的にlhs < rhsなboolを返すもの。
URLリンク(msdn2.microsoft.com)
あとは、hash_setのコンストラクタに比較関数へのデリゲートを取る奴があるから、そいつに渡す。
キーの型がoperator <が多重定義できるものなら、そっちを多重定義してもいけるはず。
ところで、hash_mapだけど、ハッシュ関数は気にしなくていいの?
デフォルトでは、GetHashValueが使われるけど、これもコンストラクタで指定できる。
ほかにも、ハッシュを使わず、比較関数だけで順序付けるsetもあるよ。
94:デフォルトの名無しさん
08/02/19 20:23:07
>>93
Myhash_set c2 = cliext::greater<wchar_t>();
この部分ですよね
bool comp(array<char>^, array<char^>) の関数を渡してもエラーになるので、
定義の仕方が違うのかなと思ってるのですが…どうにも解りません
95:デフォルトの名無しさん
08/02/20 23:43:01
質問です。
「点数のデータが入った1次元配列のアドレスと人数を受け取り、
それらの最大点〜(略)を求めて返す関数を作成する」
という問題なのですが、@「〜を受け取り」、A「〜返す」
とはどういう意味なのですか?
どうか教えていただけませんでしょうか
96:デフォルトの名無しさん
08/02/20 23:51:09
引き数を受け取り、戻り値を返す。
97:デフォルトの名無しさん
08/02/21 00:38:58
スケルトンを作るとするとこんな感じ。
int GetMaxPoint( const int * points, int num ) {
// 最大値検索処理
return max;
}
98:デフォルトの名無しさん
08/02/21 00:44:33
「返す」とはreturn();の空白に数値などを入れることですか?
この問題ってサブルーチンを作るようなものですか?
99:デフォルトの名無しさん
08/02/21 00:46:42
>>97
ありがとうございます。教科書で似たような処理を見つけたので
勉強します。
100:デフォルトの名無しさん
08/02/21 02:23:15
うざい。VCと関係ないし。
101:デフォルトの名無しさん
08/02/21 15:22:49
>>100
初心者にはそんなこと分かんねーんだよww
102:デフォルトの名無しさん
08/02/22 14:01:27
CFormViewにピクチャーボックスを貼り付けて線を描画したものを
再描画する処理について質問です。
OnDrawで処理をするとなぜか、フォームのほうに描画されて、
その上にピクチャーボックスが貼り付けられる形になってしまいます。
ピクチャーボックスのプロパティのタイプでフレームと四角形とで
比べてみるとなんとなくそんな気がします。
CDC* pPIC=m_pict.GetDC(); //ウィザードでメンバ変数と作成
CRect rt;
m_pict.GetClientRect(&rt);
pPIC->MoveTo(0,0);
pPIC->LineTo(1000,1000);
細かいところは省略しています。
OnPaintで描くと正常に描画されるみたいですが、
そのとき、WinAPIの時みたいに
BeginPaint
EndPaint
とかの処理が必要なのでしょうか?必要だとしたら
BeginPaint
ShowGraph() //描画処理
EndPaint
と言うことも可能なのでしょうか?
103:デフォルトの名無しさん
08/02/22 14:04:59
そのOnDrawはViewを描画するためのDCが来るからな
OnPaintはBeginPaintのあとOnDraw呼んでるだけだし。
何がしたいの?
PictureBoxに直接書けば再描画気にしないでいいよ
104:デフォルトの名無しさん
08/02/22 14:05:20
>102
すいません、環境を描き忘れました。
なんとなく分かると思いますがMFCで
VC6.0です。OSはWinXP SP2です。
105:デフォルトの名無しさん
08/02/22 14:09:06
>103
CPen で描いているのですが再描画しないとWindowの後ろに
隠れると消えます。
別の方法があるというのですか?
106:デフォルトの名無しさん
08/02/22 14:27:57
オーナードロー使ってるのか、ビットマップでやってるのかどっち?
107:デフォルトの名無しさん
08/02/22 14:35:55
viewとコントロールは別のウインドウだから描画は別
コントロールの描画のタイミングでやらないと
108:デフォルトの名無しさん
08/02/22 14:51:14
Viewのほうで描画するのなら、オーナードローにして
WM_DRAWITEMで引数からHDC持ってきて描画するのがいいかなあ
109:デフォルトの名無しさん
08/02/22 15:10:02
>108
今までCViewのほうばかり使っていたので、恥ずかしながら
オーナードローと言うこと自体知りませんでした。
今度はそれで検索して調べてみます。
110:デフォルトの名無しさん
08/02/22 15:13:36
>107
クラスウィザードでピクチャーボックスのオブジェクトIDをクリックしても
BN_CLICKEDしか出ません。
根本的に考えていることが違うのでしょうか?
111:デフォルトの名無しさん
08/02/22 15:27:53
>103
何がしたいのか書いていませんでした。
ただ単にピクチャーボックスにグラフを書きたいだけです。
>107
CStatocをサブクラス化しないと無理ということですか?
112:デフォルトの名無しさん
08/02/22 15:28:38
>111
> CStatocをサブクラス化しないと無理ということですか?
CStaticです。すみません。
113:デフォルトの名無しさん
08/02/22 15:43:30
FormViewってことはダイアログエディタ使ってんだよね。
まあサブクラス化でもいいけど、プロパティのタイプにオーナードロー(描画)って無い?
と思ってVC6を久しぶりに起動してみたら無いんだな。
114:デフォルトの名無しさん
08/02/22 16:12:55
>113
ないですね^^
よそのホームページで調べたとおりにやったのですが。
115:デフォルトの名無しさん
08/02/22 16:19:27
>113
ボタンならありますね。
116:デフォルトの名無しさん
08/02/22 16:37:17
ちょっと試しにVC6で、rcファイルをテキストエディタで開いて、
SS_BLACKFRAME を SS_OWNERDRAW に書き換えて
OnDrawItem を作ったら動いたぞ。
まあこのやり方はどうなのか、という話もあるが。
117:デフォルトの名無しさん
08/02/22 16:54:58
ボタンなんかと違ってわざわざオーナードローしてまで使うもんじゃないし
118:デフォルトの名無しさん
08/02/22 16:56:34
VS2003以降はオーナードローあるからなあ
119:デフォルトの名無しさん
08/02/22 16:57:59
ま、オレはいつもSTATICは場所の確保だけしてもらって
中は親のほうで書いてたけどな。
120:デフォルトの名無しさん
08/02/22 17:13:26
>116
確かに動作したけど、再びリソースエディタで開くと
変な動作をしますね。確かに楽でいいと思うけど。
121:デフォルトの名無しさん
08/02/22 17:17:05
>119
それはコントロールを自分でcreateして作ることですか?
122:デフォルトの名無しさん
08/02/22 17:18:21
>>121
いや、どこに描くかの場所だけ取得
実際の描画はOnDraw()等でやる。
今回のはサブクラス化するのがいいと思うよ。
123:デフォルトの名無しさん
08/02/22 22:10:49
>122
Createしたとき以外に成功したことがないです。
少しだけ具体例を挙げて欲しいのですがいいですか?
オーナー描画はViewのほうでするのですか?
ViewのほうのOnDrawItemで
if( lpDrawItemStruct->CtlType == ODT_STATIC &&
lpDrawItemStruct->CtlID == IDC_PCT ){
CDC* myDC=m_pict.GetDC();
CPict* pPIC=(CPict*)GetDlgItem(IDC_PCT);
CDC* myDC=pPIC->GetDC();
CRect rt;
pPIC->GetClientRect(&rt);
// m_pict.GetClientRect(&rt);
myDC->MoveTo(0,0);
myDC->LineTo(1000,1000);
}
IDC_PCTがピクチャーボックスのIDです。
CPicはCStaticをサブクラス化したものです。
//でコメントしている行のm_pictは、サブクラス化してない
普通のCStaticのメンバ変数です。
両方試してみました。
やはりOnPaint以外再描画されません。
124:デフォルトの名無しさん
08/02/22 22:24:43
しかもリソースのプロパティのスタイルでフレーム以外
描画されないみたい。
125:デフォルトの名無しさん
08/02/23 08:10:30
質問させていただきます。VisualC++.net 2005(C++/CLI)を使用してます。
生成されるEXEファイルのアイコンを変更したいのですが方法がわかりません。
IcoFXで16x16・24x24・32x32の3つのサイズを含む32ビットアイコンを用意しました
これをリソースエディタで読み込み、IDをIDR_MAINFLAMEに変更する方法を
試みましたが、用意したアイコンがリソースエディタに読み込めませんでした。
「警告:Visual Studioイメージエディタでは、32ビットカラーイメージをサポートしていません。
イメージを保存するときに、変更は破棄されます。」
リソースエディタを経由しないでEXEファイルのアイコンを変更する方法はありませんでしょうか?
よろしくお願いします。
126:デフォルトの名無しさん
08/02/23 09:19:16
ビルドするだけ
127:デフォルトの名無しさん
08/02/23 10:40:37
>121
サブクラスのほうでOnDrawItemを作ってやるというのは
分かったのですがうまくいきません。
他に注意すべき点とか有りますか?
128:デフォルトの名無しさん
08/02/23 12:09:56
ここってマインスイーパーのプログラムの質問
してもいいんですかね?
129:デフォルトの名無しさん
08/02/23 12:27:16
>>127
横レスです。
>>102まで戻って
枠外まで描画してしまうのはWNDCLASSのstyleに 'CS_PARENTDC' がついているから。
次の方法で枠内に描画できる。
1)CDC::IntersectCilpRect()で制限する。
2)CDC* pPIC=m_pict.GetDC(); を
CDC* m_PIC=m_pict.GetWindowDC(); に変える。CWindowDCを使ってもいい。
MSDNフォーラムにも同様の質問が出ていて多少参考になるかも。
そこも理由をちゃんと理解してないようだけど…
↓
Visual C++ フォーラム
ピクチャーコントロールへの描画が、はみ出てしまいます
URLリンク(forums.microsoft.com)
130:129
08/02/23 12:33:11
ごめん、ちょっと紛らわしいので補足。
1),2)を順番に実行するという意味ではなく、
1),2)の内いずれか一つの方法を採用してという意味です。
131:デフォルトの名無しさん
08/02/23 13:35:35
URLリンク(pastebin.windy.cx)
これ,いわゆる多重継承の菱形継承なのですが,
なぜあいまいであるはずの変換演算子について
C2385 のエラーが発生しないのでしょうか?
Visual C++ 2008 Express Edition です.
33行目ではエラーになるのに39行目ではエラーになりません.
しかも二つある基底クラス D1,D2 のどちらの変換演算子が
呼び出されるかが宣言における継承の順序に依存しているのです.
変換演算子ではなく通常のメソッド Greeting については
あいまいである旨のエラー C2385 が出ます.
132:131
08/02/23 13:39:33
もしかしたら Visual C++ 2008 (vc9) のバグかもしれません.
g++ 4.1.3 ではエラーになりました.
test.cpp: In function ‘int main(int, char**)’:
test.cpp:33: error: request for member ‘Greeting’ is ambiguous
test.cpp:7: error: candidates are: void BaseClass::Greeting() const
test.cpp:7: error: void BaseClass::Greeting() const
test.cpp:39: error: request for member ‘operator const std::string&’ is ambiguous
test.cpp:17: error: candidates are: D1::operator const std::string&()
test.cpp:23: error: D2::operator const std::string&()
133:デフォルトの名無しさん
08/02/23 13:52:16
菱形継承じゃないよ。単なる多重継承。
んで、39 でエラーにならないのは正直バグじゃないかと。
134:131
08/02/23 14:12:07
>>133 そうでした.菱形継承で作っているプログラムで気づいて
切り出してきたので頭がそういう風になってしまってました.
そもそも例示したコードの BaseClass って必要なかったです.
URLリンク(connect.microsoft.com)
レポートしておきました.
135:デフォルトの名無しさん
08/02/23 14:15:50
>130
ありがとうございます。
枠に収まるように組んでいたので今まで気づきもしませんでしたが
そのように予防することができるのですね。 おそらくビットマップ
にして保存するときは見えない部分もそれで保存できると言うこと
ですか?
あと、CViewを引き継いでいるCFormViewで基本時に
OnPaintは使わないと言われていましたが、関数内に
コードを書かなくても宣言するだけでOnDrawが使えなくなる
とは思っていませんでした。
136:129
08/02/23 14:30:39
>>135
MFCスレの方とごっちゃにして答えてしまったみたいだ。
MFCスレの枠内に描画制限するのは上の解決方法でいいとして、
実はこっちのスレの回答にはなっていない。ごめん。
今VC6で確認したんだけど、
ピクチャーのタイプを'四角形'にしてCFormView::OnDraw()で描画すると
描画後にピクチャー自身のWM_PAINTで背景が塗りつぶされてしまっているよう。
もし背景色を変えたいとのことであれば
タイプは'フレーム'のままでOnDraw()内で
FillRect()で背景を自前で塗りつぶせばできる。
でもOnDraw()で無理矢理ピクチャーの位置に描画するより
皆が回答してくれた通りにした方がいいと思う。
> コードを書かなくても宣言するだけでOnDrawが使えなくなる
> とは思っていませんでした。
このあたりはCView::OnPaint()のソースを見ればわかるよ。
137:デフォルトの名無しさん
08/02/23 15:25:23
>FillRect()で背景を自前で塗りつぶせばできる。
既にあきらめてそれをやっています^^
それってバグじゃない? とか思ったり。
>このあたりはCView::OnPaint()のソースを見ればわかるよ
他のホームページでだいたいのことは分かりました。
ソースも検索で見てみました。
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
いつもと違って誤ってOnPaintを作ってからOnDrawを
作って書いたのでひどい目に遭いました。
そこで便乗質問ですが、CView以外でOnPaint内で
CDCを使った場合、BeginPaintとかいるんですか?
CPaintDCならいらないと聞いたのですが。
138:デフォルトの名無しさん
08/02/23 15:38:29
>136
> 皆が回答してくれた通りにした方がいいと思う。
オーナー描画、BitMap のうちどれですか?
オーナー描画もいろいろ調べたのですが、あきらめました。
BitMapも入門書ではピクチャーボックスではCDialogにですが、
OnPaintで再描画しているサンプルでした。
皆が進めるのはOnDraw OnPaint以外に書く方法ですか?
仮にサブクラス化したとして、どのタイミングで再描画
しているのでしょ?
139:デフォルトの名無しさん
08/02/23 17:10:05
ごちゃごちゃ回りくどいことやらずに直接viewに書く
140:129
08/02/23 17:47:06
>>137
> CPaintDCならいらないと聞いたのですが。
これはCPaintDCのコンストラクタ・デストラクタを見ればわかる。
>>138
(1)オーナードローを使う。
VC6ではダイアログエディタでオーナードローにできないのでコード上で
CFrameView::OnInitialUpdate()あたりで
m_pict.ModifyStyle(SS_TYPEMASK, SS_OWNERDRAW);でする。
その後CFrameView::OnDrawItem()で描画処理。
(2)CWndやCStatic派生クラスのOnPaint()内で描画する。
簡単なのは(1)だと思うけど
グラフを書きたいとのことなので、
グラフをあちこちで使いまわすのなら(2)かな。
141:デフォルトの名無しさん
08/02/23 18:52:00
スタティックコントロールは文字や図形を表示してくれるコントロールで、
これをオーナードローにしたら何もしないコントロールだけど
そんなものにわざわざコントロール使う意味ある?
142:デフォルトの名無しさん
08/02/23 19:06:43
URLリンク(okwave.jp)
ダイアログベースのexeで最適なグラフ表示方法 -OKWave
143:デフォルトの名無しさん
08/02/23 21:01:29
>>141
描画だけじゃなくマウスのこととかも含めた
簡易的な位置決めツールにとしては働く。
一応独立したウィンドウなんだし。
144:デフォルトの名無しさん
08/02/23 21:56:23
>140
ありがとうございます。
m_pict.ModifyStyle(SS_TYPEMASK, SS_OWNERDRAW);
ああ、これをやらないとダメなんですね。
元のFrameViewでよかったんですね。
確かに、コントロールとしての意味がなくなりそうなので
(2)のほうでやってみます。
Createまでする必要がないというのはよく分かりました。
いろいろと溜になる情報ありがとうございました。
145:デフォルトの名無しさん
08/02/24 00:28:53
void CMine1View::DispMine()
{
CClientDC dc(this);
CBrush *oldBrush1,redBrush,*oldBrush2;
int iy,ix;
for(iy=2;iy<=Masu+1;iy++)
{
for(ix=2;ix<=Masu+1;ix++)
{
if(Mine_Position[iy][ix]==-1)
{
oldBrush1=(CBrush*)dc.SelectStockObject(WHITE_BRUSH);
dc.Rectangle(ix*Width,iy*Width,
ix*Width+Width,iy*Width+Width);
dc.SelectObject(oldBrush1);
redBrush.CreateSolidBrush(RGB(255,0,0));
oldBrush2=dc.SelectObject(&redBrush);
dc.Ellipse(ix*Width+5,iy*Width+Width+5,
ix*Width+Width-5,iy*Width+Width-5);
dc.SelectObject(oldBrush2);
redBrush.DeleteObject();
}
}
}
AfxMessageBox("地雷 踏みました!");
}
VC++6.0でマインスイーパーを作ってます
地雷がうまく表示されないのと地雷を踏んだ時にリセットされません
どこがおかしいのか教えてください
146:デフォルトの名無しさん
08/02/24 00:36:42
>>145
一体何をリセットした積もりなの?
147:デフォルトの名無しさん
08/02/24 01:02:49
>>146 プログラム組むの初めてでそれすらもわからないです
本を見ながらやったんですがうまくいかなくて
148:デフォルトの名無しさん
08/02/24 01:14:07
Viewなのか、MFCってことだな。 んで、Documentは参照してないと。
ど、どんな本みてんだYO!
149:デフォルトの名無しさん
08/02/24 01:16:24
何をリセットしたつもりなのかもわからないのにリセットされないとどうやって判断したの?
少なくとも、「リセットされません」と言うからには何かを「リセットした積もり」なんじゃないの?
150:デフォルトの名無しさん
08/02/24 01:28:37
リリースビルドをデバッグビルドにしてみたのですが、
なぜかブレイクポイントがヒットしなくなっていました
これを直すにはどうすればよいのでしょうか。
ちなみにncbファイルの削除というのはやってみました。
151:デフォルトの名無しさん
08/02/24 01:30:53
>>148 MFCって書いてあります
>>149 地雷を踏んでログがでて最初の画面に戻るはずなんですが
152:デフォルトの名無しさん
08/02/24 01:48:06
>>151
>145は何の関数か理解している?
少なくとも、「ログがで」たり「最初の画面に戻る」処理は書かれていないわけで。
そもそも、「地雷を踏んだ」かどうかの判定している関数でもないな。
153:デフォルトの名無しさん
08/02/24 01:58:12
>>152 問題はここではないんですね
地雷の表示がうまくいかないのはここの部分であってますか?
154:デフォルトの名無しさん
08/02/24 02:00:51
>>153
脳味噌にも皺伸ばししているのか?
地雷の表示はどうなってほしいのがどううまくいかないのかも説明できないなら寝た方がいいぞ。
155:デフォルトの名無しさん
08/02/24 02:08:56
>>154
説明不足ですいませんでした
柵の真ん中に赤い丸で表示されるはずなんですが
実際は柵の下部分に半円で表示されるんです
156:デフォルトの名無しさん
08/02/24 04:34:41
>>155
>dc.Ellipse(ix*Width+5,iy*Width+Width+5,ix*Width+Width-5,iy*Width+Width-5);
これあってるの?
157:デフォルトの名無しさん
08/02/24 05:02:51
DSで動くソフトを作りたいんですけど
まず初めに何をすればいいんですか?
(´・ω・`)
158:デフォルトの名無しさん
08/02/24 05:43:44
>>156
+5の方の「Width」がひとつ多かったです
直してビルドして確認してみたらちゃんと赤い丸で表示されました
赤い丸が表示されないという問題は無事解決しました ありがとうございました
159:デフォルトの名無しさん
08/02/24 06:20:29
void CMine1View::OnButton1()
{
CClientDC dc(this);
CString ss;
int iy,ix,x,y,m_x,m_y;
Masu=8; MineKazu=0;
for(iy=0;iy<=Masu+1;iy++)
{
for(ix=0;ix<=Masu+1;ix++)
{
Mine_Position[iy][ix]=0; Mine_Pass[iy][ix]=0; Mine_Kazu[iy][ix]=0;
}
}
Width=30;
for(x=Width*2;x<=Width*10;x+=Width)
{
dc.MoveTo(x,Width*2);dc.LineTo(x,Width*10);
}
for(y=Width*2;y<=Width*10;y+=Width)
{
dc.MoveTo(Width*2,y);dc.LineTo(Width*10,y);
}
for(iy=0;iy<=Masu*3;iy++)
{
X=(int)((double)rand()/32767.0*Masu);
Y=(int)((double)rand()/32767.0*Masu);
X=(int)((double)rand()/32767.0*Masu);
Y=(int)((double)rand()/32767.0*Masu);
Mine_Position[Y][X]=-1;
Mine_Pass[Y][X]=-1;
Mine_Kazu[Y][X]=-1;
}
160:159
08/02/24 06:25:08
for(iy=2;iy<=Masu+1;iy++)
{
for(ix=2;ix<=Masu+1;ix++)
{
if(Mine_Kazu[iy][ix]==1)
{
MineKazu=MineKazu+1;
}
}
}
ss.Format("地雷の数は%d個です!",MineKazu); dc.TextOut(350,50,ss);
for(iy=2;iy<=Masu+1;iy++)
{
for(ix=2;ix<=Masu+1;ix++)
{
if(Mine_Position[iy][ix]==-1)
{
for(m_x=-1;m_x<=1;m_x++)
{
for(m_y=-1;m_y<=1;m_y++)
{
if(m_x!=0||m_y!=0)
{
if(Mine_Position[iy+m_y][ix+m_x]!=-1)
{
Mine_Position[iy+m_y][ix+m_x]=
Mine_Position[iy+m_y][ix+m_x]+1;
}}}}}}}}
起動した時に地雷の数を表示させたいのですが
表示は0のままでうまく表示出来ません
どこがおかしいのか教えてください
161:145.159
08/02/24 06:26:48
>>145のマインスイーパーについての質問です
162:デフォルトの名無しさん
08/02/24 08:08:41
>どこがおかしいのか教えてください
あんたの頭。
お願いだから寝てください。できれば永久に。
>Mine_Kazu[Y][X]=-1;
-1をセットしているのに
>if(Mine_Kazu[iy][ix]==1)
1を数えているじゃないか。
163:161
08/02/24 15:56:01
>>162 直したら地雷の数表示されました
ありがとうございます
164:デフォルトの名無しさん
08/02/24 16:00:19
void CMine1View::OnLButtonDown(UINT nFlags, CPoint point)
{
CClientDC dc(this);
CBrush blueBrush,*oldBrush1;
CString ss;
int iy,ix;
iy=int(point.y/Width);
ix=int(point.x/Width);
if(2<=iy&&iy<=Masu+1&&2<=ix&&ix<=Masu+1)
{
blueBrush.CreateSolidBrush(RGB(0,0,255));
oldBrush1=dc.SelectObject(&blueBrush);
dc.Rectangle(ix*Width,iy*Width,
ix*Width+Width,iy*Width+Width);
dc.SelectObject(oldBrush1);
blueBrush.DeleteObject();
Mine_Pass[iy][ix]=-1;
if(Mine_Position[iy][ix]>=1)
{
ss.Format("%d",Mine_Position[iy][ix]);
dc.TextOut(ix*Width+10,iy*Width+5,ss);
Mine_Pass[iy][ix]=-1;
}
165:145.159.160.164
08/02/24 16:00:56
else if(Mine_Position[iy][ix]==-1)
{
DispMine();
}
for(iy=2;iy<=Masu+1;iy++)
{
for(ix=2;ix<=Masu+1;ix++)
{
if(Mine_Pass[iy][ix]!=-1)
{
//goto saido;
return;
}
}
}
AfxMessageBox("おめでとう!クリアです!");
DispMine();
// saido:;
}
CFormView::OnLButtonDown(nFlags,point);
}
起動〜終了まで出来るようになったのですが
終了時にクリアのログの後に地雷を踏んだログが出てしまいます
どこが悪いのか教えてください
166:デフォルトの名無しさん
08/02/24 16:09:00
>どこが悪いのか教えてください
あんたの頭。いい加減にしなさい。
167:デフォルトの名無しさん
08/02/24 17:13:45
>>166 本当にわからないんです
自分の頭が悪いのはわかってます・・・
168:デフォルトの名無しさん
08/02/24 17:19:07
ここにソースあるから
URLリンク(www.kohgakusha.co.jp)
169:デフォルトの名無しさん
08/02/24 18:04:19
>>167
何が悪いか判ってよかったな。つまり、あんたにはプログラミングは無理ってことだ。
170:デフォルトの名無しさん
08/02/24 18:24:49
VC++でMFC使わずにWin32Appで書いてるんですが、
MFC覚えた方がいいですか?
仕事だとMFCとWin32Appはどっちが使われてます?
171:デフォルトの名無しさん
08/02/24 19:12:09
MFC覚えたらかなり生産性あがるよ
172:デフォルトの名無しさん
08/02/24 21:00:31
>>170
使えと言われたときのために軽くかじっておくのはいいと思う。
かじったことのない俺が言っても説得力0だけど。
173:デフォルトの名無しさん
08/02/24 22:31:57
お勧めの入門書はありますか?
174:デフォルトの名無しさん
08/02/24 23:34:28
VC++でEmacsキーバインドを使いたいのですが、
わざわざTabキーを入力しなければインデントしてくれません。
自動インデントをしてくれるようにする方法はありますか?
VC++のバージョン:
Visual C++ 2008 Express Edition
現在の設定:
ツール->オプション->環境->キーボード
次の追加キーボードマップスキームを適用->Emacs
ツール->オプション->テキストエディタ->C/C++->タブ
インデント->スマート
タブ->タブの保持
後はおおむねデフォルトです。
175:デフォルトの名無しさん
08/02/25 00:34:04
>173
MFCなら 10年前に買った、新Visual C++ 6.0 入門編 シニア編
かな?
176:デフォルトの名無しさん
08/02/25 00:48:31
>>175
それって入門用には最悪だろ
177:デフォルトの名無しさん
08/02/25 04:08:20
なぜSelectObjectは描画後とかに戻し作業が必要なんですか?
DeleteObjectもなくても動くんですがどういうことですか?
pDC->SelectObject(oldFont);
myFont.DeleteObject();
178:デフォルトの名無しさん
08/02/25 06:43:45
戻し作業は不要だけど、状況によっては戻す必要がある。
DeleteObjectは必要だけど、なくても一応動く
ただDeleteObjectしてないように見えるけど、実際は見えない部分でやってる場合もある。
間違ったやり方をしているサンプルもあるし、
一見間違っているように見えて間違ってないサンプルもあるから
猿真似しかできないやつだと理解は難しい。
179:デフォルトの名無しさん
08/02/25 07:19:13
MFC 使ってるならデストラクタで自動的に DeleteObject される。
myFont をローカル変数にしていた場合、
SelectObject で戻し作業をしてないと
登録しているオブジェクトを DeleteObject しようとしてしまう。
myFont がローカル変数でない場合は
状況によっては必ずしもすぐさま戻す必要は無いが、
最終的には戻す必要がある。
180:デフォルトの名無しさん
08/02/25 09:56:18
MSDNのサンプルは戻さずに消してるよ
GRAPHICS\GDI\FONTS\FONTVIEW\STATUS.C
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rect);
hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
border = rect;
border.bottom = border.top + cyStatusBorder;
FillRect (hdc, &border, hBrush);
DeleteObject (hBrush);
hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));
border = rect;
border.top = border.bottom - cyStatusBorder;
FillRect (hdc, &border, hBrush);
DeleteObject (hBrush);
EndPaint (hwnd, &ps);
181:デフォルトの名無しさん
08/02/25 10:10:24
あ、それselectしてないか
182:デフォルトの名無しさん
08/02/25 11:32:29
ペゾ本読み返してみたら戻さなくていいが正解だった。
183:デフォルトの名無しさん
08/02/25 15:01:06
つまり戻さないとどうなるんですか?描画し終わったらデリようが、戻そうがどうでもよくないですか?
184:デフォルトの名無しさん
08/02/25 15:15:32
戻さないと消せない。
消さないとリソース消費が膨れ上がる。
ストックオブジェクトなら消す必要が無い
どの辺が疑問かわからん
185:デフォルトの名無しさん
08/02/25 15:19:33
ローカル変数だと自動デリでアクセス違反起こすって事じゃないの
186:デフォルトの名無しさん
08/02/25 15:20:25
まさにそれが聞きたかったんだ
ありがとう
187:デフォルトの名無しさん
08/02/25 15:31:23
描画の時にその都度選択しないといけないのは
解放されてしまうからなんだよね
だから自分で元に戻さなくても大丈夫
188:デフォルトの名無しさん
08/02/25 16:10:31
出したものは片付ける
189:デフォルトの名無しさん
08/02/25 16:22:58
出した後は疲れて寝ちゃうからほったらかし
190:デフォルトの名無しさん
08/02/25 17:06:07
>>185
アクセス違反は起きないよ。
SelectObjectされたままだとDeleteObjectが失敗するからどんどん溜まっていく。
使っているGDIオブジェクトの数はタスクマネージャでも確認できる。
・・・上限っていくつだろ?ググってみたがわからん。
191:デフォルトの名無しさん
08/02/25 18:19:05
>>190
たぶん上限というのは9xで64KB, NTで標準1MBのやつ。
で、オブジェクト1個で何バイトだよって話になるんだけどね。
192:デフォルトの名無しさん
08/02/25 19:39:37
このスレはペゾルド本読んでるやつ誰もいないのか?
戻さずに削除するやり方がちゃんと書いてあるだろ
193:デフォルトの名無しさん
08/02/25 20:08:58
だったら書けよチンカス
194:デフォルトの名無しさん
08/02/25 21:09:36
SelectObjectしたらいつまで有効?
毎回SelectObjectするのは何故?
195:デフォルトの名無しさん
08/02/25 23:49:47
SelectObjectしたままほっとらかしておいて大丈夫な状況なら、ほったらかしにすれば宜しいかと。
196:デフォルトの名無しさん
08/02/27 18:35:12
CButton* radio1=(CButton*)GetDlgItem(IDC_RADI01);
の(CButton*)この括弧ってなんなの?
ポイント関係の項目読んでも解説が出てこないんですけど!
197:デフォルトの名無しさん
08/02/27 18:36:40
索引で「型キャスト」を調べるべし
198:デフォルトの名無しさん
08/02/27 18:42:06
OK!!
199:デフォルトの名無しさん
08/02/27 18:59:20
わかりました。
CButtonクラスにするポインタradio1にGetDlgItemで取り出したIDC_RADI01のアドレスをCスタイルキャストでポインタに強制変換していれてるんですね。
さっぱりわかりません
200:デフォルトの名無しさん
08/02/27 19:05:23
やばいわかっちゃった
GetDlgItemで取り出したIDC_RADI01のアドレスをCButton型のポインタにしていれてるんだ!
201:デフォルトの名無しさん
08/02/27 19:06:24
もうだめだ
202:デフォルトの名無しさん
08/02/27 19:20:51
いやあってる!ありがとうございました!
203:デフォルトの名無しさん
08/02/27 21:27:46
Visual Studio 2003 なんですが、
Foo.cpp タブの下に表示されている
クラスとメソッドを選択するバーを消す
方法を教えて下さい。
204:デフォルトの名無しさん
08/02/27 22:04:16
何でRADI01(ラジ01)なんだろう。
205:デフォルトの名無しさん
08/02/27 22:09:44
>>203
Visual Studio 2005 Part 23
スレリンク(tech板)l50
206:デフォルトの名無しさん
08/02/27 22:34:55
CWnd* myPICT=GetDlgItem(IDC_PICT);
CClientDC myDC(myPICT);
は丸暗記するものなんですか?
それともここを理解しないと先は暗いですか?
207:デフォルトの名無しさん
08/02/27 22:42:30
理解できてたらおぼえる必要ないだろ
忘れたら前に書いたコード探すだけだし
208:デフォルトの名無しさん
08/02/27 22:43:58
暗記なんてするのは学校のテストだけですよ
209:デフォルトの名無しさん
08/02/27 22:46:49
も、もしかして CWnd と CClientDCの構造体の中身から調べなきゃいけないんですか?
210:デフォルトの名無しさん
08/02/27 22:47:05
いい加減こいつがうざくなってきた
211:デフォルトの名無しさん
08/02/27 22:48:17
すいません二度と来ません
212:デフォルトの名無しさん
08/02/27 22:48:44
さいならっきょ
213:デフォルトの名無しさん
08/02/27 22:50:15
>>209
もし、その中身を知っていなきゃコーディングできないとするならばそんな関数があること自体おかしいと思わないか?
printfの実装なんぞ知らなくたって使えるだろ?
214:デフォルトの名無しさん
08/02/27 22:59:42
MFC使っててCWnd知らないやつはいないだろうし
CDC使ったことがあったらCClientDCも使えるだろうし
215:203
08/02/27 23:20:28
>>205
載ってる?
行って探してみたけど無さそうだったよ。
そもそも、消す機能ついて無い気もしてきた。。
とりあえずあきらめよう。
Thx.
216:デフォルトの名無しさん
08/02/29 00:56:57
VC++6.0なんだけど一行って何行まで書けるの?
2行に分けたい場合はどうするの?
217:デフォルトの名無しさん
08/02/29 01:12:19
日本語でおk
218:デフォルトの名無しさん
08/02/29 01:18:45
CやC++では、ただの空白やタブのみならず改行なども同じように区切りとして扱われる。
ようするに、だいたい改行したいと思ったところにただ改行を書くだけで大丈夫。
例えばVBのように行継続文字を書く必要はない。
それに相当するものはある(バックスラッシュを使う)のだが上記の理由で基本的に不要。
219:デフォルトの名無しさん
08/02/29 02:45:29
すごくよくわかりました。ありがとうございました
220:デフォルトの名無しさん
08/02/29 03:13:17
#defineとかは駄目だけどな
221:デフォルトの名無しさん
08/02/29 09:39:47
長いリテラルを複数行に分けて書く
222:デフォルトの名無しさん
08/02/29 10:15:08
ソースのことなのか実行結果のことなのかくらい書いたほうがいいけどなw
223:デフォルトの名無しさん
08/03/01 18:33:50
みんなバージョンいくつ使ってるの?
224:デフォルトの名無しさん
08/03/01 18:52:36
いまだに6.0が現役です
225:デフォルトの名無しさん
08/03/01 20:00:21
>>216
>一行って何行まで書けるの?
一行でなくなったら一行ではなくなるではないか。
226:デフォルトの名無しさん
08/03/03 09:48:08
つまり答えは一行には一行まで書けます、だな
227:デフォルトの名無しさん
08/03/03 12:10:55
古谷一行に訊け
228:デフォルトの名無しさん
08/03/03 20:52:04
一文字に何行書けますか?
という質問だろ、
文脈から判断せいや
229:デフォルトの名無しさん
08/03/03 21:04:22
>>216
文字列なら
char *str = "abc"\
"def";
みたいな感じ
関数ならint hoge(int a,int b,
int c)
{}
みたいな感じ
230:デフォルトの名無しさん
08/03/03 21:11:34
>一文字に何行書けますか?
・・・え?
一文って何行まで書けるの? じゃないのか?
231:デフォルトの名無しさん
08/03/03 21:22:39
お前らC++の前に日本語習得してこいよ
232:デフォルトの名無しさん
08/03/03 21:34:47
>>229
"で閉じているときは\は無くていいよ。↓でOK
char *str = "abc"
"defg"
"hijk";
閉じないなら\で繋げる。
char *str = "abc\
defg\
hijk";
(もっとも、この場合は行頭に桁揃えのスペースやタブを入れられなくなるが・・・)
233:デフォルトの名無しさん
08/03/05 00:12:55
アウトプットウィンドウに表示されるテキストを右端で折り返すこと
はできないのでしょうか? 長いエラーメッセージが表示されたとき、
水平スクロールバーを使ってスクロールしながら読むのは骨が折れます。
Visual C++6.0です。よろしくお願いします。
234:デフォルトの名無しさん
08/03/05 00:19:42
適宜改行しておけばいいんでね?
235:デフォルトの名無しさん
08/03/05 00:24:39
改行って、どうやって改行するんですか? カーソルを置いて[Enter]を
押しても改行されませんよ。
236:デフォルトの名無しさん
08/03/05 01:53:19
「右端で折り返す」オプションなかったっけ、2005にはあるが、、、
っと起動してみたがみつからんなあ、長年つかってなかったからよーわからん
ヘルプもうまく出んな
237:デフォルトの名無しさん
08/03/05 01:55:09
>>235
出力時にですがな。
238:デフォルトの名無しさん
08/03/05 02:12:24
>>237
>235が言ってるのはビルドエラーだよ?
コンパイラのコードをいじれと?
239:デフォルトの名無しさん
08/03/05 02:26:33
んが? 自分で出したエラーメッセージじゃないの?
そら失礼。
240:デフォルトの名無しさん
08/03/05 06:53:06
ちんちん!
241:デフォルトの名無しさん
08/03/05 12:35:45
ちんちんの後でつらいですが、
int a[10];
の a[10] 以降の配列にデータを入れ続けた場合の被害は、最悪プログラムの強制終了だ。と上の方に書いてありましたが本当ですか?
なんか最近OS起動後すぐにWindousのプロセスが強制終了しだしたんですが、
自分のアプリ外のメモリ領域は保護してくれるぐらいの機能はあるんですよね?VC++6.0なんですけど。
242:デフォルトの名無しさん
08/03/05 13:10:14
>>241
URLリンク(www.kumei.ne.jp)
動かない事はないけどメモリアドレス関係のバグは命取り
243:デフォルトの名無しさん
08/03/05 13:27:14
メモリの保護はOSの役目なのでVC++とか関係ないです。
244:デフォルトの名無しさん
08/03/05 14:06:06
test
B?ng
245:デフォルトの名無しさん
08/03/05 21:34:33
質問です.VC++2005を使用しているのですが
LPSTR型の文字列をchar str[200]に代入したいのですが可能でしょうか?
246:デフォルトの名無しさん
08/03/05 21:44:28
typedef CHAR * LPSTR;
だから
247:デフォルトの名無しさん
08/03/05 21:51:04
strncpy 使わないとな。
248:デフォルトの名無しさん
08/03/06 01:15:44
Visual C++ 2008 Express Editionを使ってるんですけど、プロパティバインディングって使えないんでしょうか?
適当なコントロールを選んで、プロパティのApplicationSettings->PropertyBindingの...をクリックし、バインドしたいプロパティを選んで新規を押し、
項目を入力してOKを押すと「設定ファイルがプロジェクトに見つかりません。設定ファイルを追加して、再試行してください。」と出ます。
(プロジェクト名).config, (プロジェクト名).exe.config, App.config, config.xml, (プロジェクト名).xmlといろいろ追加してみましたが結局出来ませんでした・・・。
どうすればいいものかと途方にくれてます。。
249:デフォルトの名無しさん
08/03/06 18:19:22
大きなダイアログのタブオーダーの設定をしている最中に
スクロールバーでダイアログを動かすと
次にクリックした位置がオーダー1に戻ってしまうのですが、
これってVC2005のバグなのでしょうか?
こういう場合、どのようにしてタブオーダーを設定すればよいでしょうか。
250:デフォルトの名無しさん
08/03/06 18:48:33
>>249
URLリンク(msdn2.microsoft.com)(VS.80).aspx
Ctrlを押しながらクリックすれば途中から設定できるはず
それかホイールマウスでスクロールする。
251:デフォルトの名無しさん
08/03/06 18:57:09
>>250
> Ctrlを押しながらクリックすれば途中から設定できるはず
スクロールした後にコントロールをCtrl+クリックすると、
そこが新たな基準点になるだけで、
そのコントロール自体のタブオーダーは変更されないのです。
> それかホイールマウスでスクロールする。
ホイールを回してもスクロールしないのですが、
これはなにかの設定に依存するのでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4437日前に更新/222 KB
担当:undef