■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
★初心者にVisual C++を教えるスレ★ Part6
251
名前:
240
:03/05/24 20:52
>>241
マニフェストは関係なくuxtheme.dllやDrawTheme***関数を使って
自分でXPスタイルの外観(例えばボタン枠やツールバーの浮き出しの部分)
を描画する事は出来ないのでしょうか?
それとも他に方法があるのでしょうか?
252
名前:
デフォルトの名無しさん
:03/05/24 20:55
>>251
MSDNに載ってるが。
253
名前:
デフォルトの名無しさん
:03/05/24 21:16
すいません。ボタンを押したら
ダイアログ内の指定した領域を保存するという
プログラムを作りたいのですがわかりません。
検索してみましたがわかりませんでした。
領域の指定方法はわかるのですが、その領域内の
情報の保存の仕方および復元の仕方がわかりません。
希望としてはビットマップで保存してあとから参照できるように
したいです。
254
名前:
デフォルトの名無しさん
:03/05/24 21:39
>>253
デバイスコンテキストに指定領域をコピー
↓
GetDIBitsってとこだな
255
名前:
253
:03/05/24 21:51
GetDIBitsですか。今から調べてみます!
ありがとうございます
256
名前:
デフォルトの名無しさん
:03/05/24 21:52
>>251
とっととMSDNOnline行けタコ。
257
名前:
240
:03/05/25 08:33
MSDN Library\User Interface Design and Development\Windows Shell
\Shell Reference\Visual Styles Reference
MSDN USAにそのような項目があったのですが
MSDN Japanにはありませんでした。
つまり日本語の解説は無しって事ですか?
258
名前:
デフォルトの名無しさん
:03/05/25 10:15
>257
Yes!
259
名前:
デフォルトの名無しさん
:03/05/25 10:50
見つけたのにまだ来るのかよ
>240
結局初心者に先ず教えるべきは英語嫁ってことか
260
名前:
デフォルトの名無しさん
:03/05/25 10:52
まー、最初のハードルはあのMSDNを読みこなすことができるかどうかだからな
261
名前:
240
:03/05/25 11:29
何とか実装に成功しました。
ありがとうございました。
262
名前:
デフォルトの名無しさん
:03/05/25 22:09
>245
マジレスすると、およそ20〜30人。意外と少ないと思われるかもしれないけど、こんなもん。
長期のプロジェクトになるから、多少人の出入はあるけどね。
263
名前:
デフォルトの名無しさん
:03/05/25 22:44
へえ、意外と少ないんですねえ
で、もう一度言うが「スレタイ嫁」
264
名前:
デフォルトの名無しさん
:03/05/25 23:26
それよりもなんでそんな事聞きたいのか小一時間・・・
265
名前:
デフォルトの名無しさん
:03/05/26 03:17
vcを勉強したくHPでおすすめな所はどこでしょうか?
自分でもさがしたのですが・・・。
プログラムって難しい。
266
名前:
デフォルトの名無しさん
:03/05/26 03:32
>>265
>プログラムって難しい。
C/C++を知っているのかと小一時間…
それとも割れ(以下略
267
名前:
デフォルトの名無しさん
:03/05/26 07:56
メニューの各項目がボタン型のオーナードローメニューを
作りたいのですが、選択中の項目上でマウスの左ボタンを
押すとボタンが凹むようにする(つまり選択中の項目上で
マウスの左ボタンの状態が変化するたびに選択中の項目を
再描画する)にはどうしたら良いでしょうか?
WM_DRAWITEMメッセージでは項目を一回きり描画するだけで、
WM_MENUSELECTメッセージではメニューの選択項目が変化した時
にしか呼び出されないので。
268
名前:
デフォルトの名無しさん
:03/05/26 08:04
>>265
VCとかで検索してみれば良いのに…
ttp://www.kumei.ne.jp/c_lang/
269
名前:
デフォルトの名無しさん
:03/05/26 20:19
>>267
マウスのイベントを捕らえるしかないんじゃないの?
参考までにcodeguru
ttp://www.codeguru.com/menu/index.shtml
270
名前:
デフォルトの名無しさん
:03/05/26 21:59
VCでコンボボックスを使ってプログラムを書いているのですが、例えば"m_combo."のように打ち込むと.GetWindowTextやSetWindowTextというようなリストが出てきますよね???ですが出てこないんです.それで、自分で打ち込んでビルドしてみると実行は成功します.
なぜ、関数のリストが出てこないのでしょうか?教えてください。
271
名前:
デフォルトの名無しさん
:03/05/26 22:00
ハテナが多すぎ
272
名前:
デフォルトの名無しさん
:03/05/26 22:02
>>271
に激しく同意。
273
名前:
デフォルトの名無しさん
:03/05/26 22:03
句読点がピリオドになってるのも気になる
274
名前:
デフォルトの名無しさん
:03/05/26 22:05
>>271-273
ウザイ!わからねーなら黙ってろ!!!
275
名前:
デフォルトの名無しさん
:03/05/26 22:07
>>271
>>273
>>272
すみません。ちなみに”m_conbo."です。もし”.”を気になさっている人がいたならちゃんと“.”で書いてあります。
276
名前:
デフォルトの名無しさん
:03/05/26 22:08
>>275
VC6?バグじゃないの?
起動しなおせば?
277
名前:
デフォルトの名無しさん
:03/05/26 22:10
起動しなおしてもダメなんですよね。もしバグだったら、実行した時にエラーが出ると思うのですが実行は成功しています。
278
名前:
デフォルトの名無しさん
:03/05/26 22:10
>>270
該当するクラスのヘッダファイルを開いて上書き保存
または、
VC終了→ncbファイル削除→VC起動
279
名前:
デフォルトの名無しさん
:03/05/26 22:12
すみません。ncbファイルってなんですか?
280
名前:
デフォルトの名無しさん
:03/05/26 22:12
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0
281
名前:
デフォルトの名無しさん
:03/05/26 22:13
>>277
バグっていっても、VCの方のバグね。
282
名前:
デフォルトの名無しさん
:03/05/26 22:21
>>278
ありがとうございます!!できました!でも、なにが起こっていたのでしょうか?全く解らないのですが…
ありがとうございました。
283
名前:
デフォルトの名無しさん
:03/05/26 23:13
プログラム実行したら、
「○○○○が原因で○○○○.EXEにエラーが発生しました。
○○○○は終了します。」(○○○○はファイル名)
って表示されました。何が原因なんでしょうか?
わかる方いたら教えてください。
284
名前:
デフォルトの名無しさん
:03/05/26 23:16
わかる人がいたら見てみたいよ・・・ハァ
285
名前:
デフォルトの名無しさん
:03/05/26 23:20
>283
○○○○
286
名前:
デフォルトの名無しさん
:03/05/26 23:23
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0
287
名前:
代弁
:03/05/26 23:23
>>285
良くわかりました!ありがとうございます!
288
名前:
デフォルトの名無しさん
:03/05/26 23:49
>>283
どうせヌルポだろ?
289
名前:
デフォルトの名無しさん
:03/05/26 23:50
VCについて質問です。
ボタンをDlgで作成したのですが普通、ボタンを作成し関数を作成し、その後、右クリックclassviewを表示しようとしると
Parsing error:改行が必要です。インプットライン....というようなエラーが出てしまいました。
何が原因なのでしょうか。
290
名前:
デフォルトの名無しさん
:03/05/26 23:51
FTP通信のやりかた教えてください。
291
名前:
デフォルトの名無しさん
:03/05/26 23:55
CFTPなんたらっていうMFCのクラスがあったと思われ。
簡単な処理ならそれで足りる。
292
名前:
デフォルトの名無しさん
:03/05/26 23:58
>>289
適当に改行してから保存(Ctrl+S)すれば直ると思うが
293
名前:
デフォルトの名無しさん
:03/05/27 00:17
C++ではコントロールの配置などはマウスで行うんですか?
単純な質問ですみません
294
名前:
デフォルトの名無しさん
:03/05/27 00:22
>>293
「行う」のではなく、「行える」。
ニュアンスの違い。
295
名前:
デフォルトの名無しさん
:03/05/27 00:32
>>294
行えるということは無理に行わなくても
良いということですか?
296
名前:
デフォルトの名無しさん
:03/05/27 00:46
>>294
無理にマウスで配置してもよろしい。
色々ある方法の内で「配置はマウスでも行える」と言う意味。
297
名前:
デフォルトの名無しさん
:03/05/27 01:30
中身は全く同じで、名前だけ違うA.DLLとB.DLLがあったとします。
実行ファイルの起動時パラメータでA.DLLを参照するか、B.DLLを参照するか、
切り替えたいのですがどのようにコーデイングすればよろしいでしょうか?
DLLは.libファイルも用意してあります。静的リンクでは無理ですか?
298
名前:
デフォルトの名無しさん
:03/05/27 01:34
>>297
切り替える意図が全く見えないのだが。
299
名前:
297
:03/05/27 01:45
>>298
DLLは共有メモリとして使用しています。
プログラムは起動時パラメータで、
モードを切り替えられる作りになっています。
モード別に多重起動するため、DLLを切り替えたいのです。
300
名前:
吉岡美穂
:03/05/27 01:49
>>297
動的リンクしかないんじゃないかしら。
301
名前:
299
:03/05/27 01:56
>>300
ありがと〜。
そっちの方向で試してみます。
302
名前:
デフォルトの名無しさん
:03/05/27 10:56
俺は性的リンクをお勧めするね
303
名前:
デフォルトの名無しさん
:03/05/27 13:29
>>292
ありがとうございました:)
できました。
304
名前:
デフォルトの名無しさん
:03/05/27 16:56
>>302
ありがとうございました。できました。
305
名前:
デフォルトの名無しさん
:03/05/27 18:28
あるデバイスコンテキストを割り当てているウィンドウの
画面左上端(0,0)とした長方形の座標(RECT)を求めたいのですが
void CXX::YY( CDC *pDC )
{
HWND hwndCDC;
RECT rectCDC;
hwndCDC = pDC->GetWindow()->GetSafeHwnd();
GetWindowRect(hwndCDC, &rectCDC);
}
とすると、rectCDCにはいつも-858993460という意味不明で
不正確な数値が返ってきてしまいます。
どうか正確な座標の求め方を教えてください。
306
名前:
デフォルトの名無しさん
:03/05/27 19:03
>>305
rectCDCのメンバ変数を使うんじゃないのか?
307
名前:
305
:03/05/27 19:32
>>306
left、top、right、bottomすべて-858993460という
数値が返ってきてしまいます。
308
名前:
デフォルトの名無しさん
:03/05/27 19:41
>>307
漏れの環境では正常に取得できました。
CDC *pDC = GetDC();
RECT rect;
try {
pDC->GetWindow()->GetWindowRect(&rect);
}
catch(...)
{
;
}
TRACE("%d / %d / %d / %d\n", rect.top, rect.left, rect.right, rect.bottom);
ReleaseDC(pDC);
--
299 / 282 / 671 / 616
309
名前:
デフォルトの名無しさん
:03/05/27 20:14
>>305
hwndCDCの値は有効な値なの?
310
名前:
デフォルトの名無しさん
:03/05/27 21:48
>>305
> どうか正確な座標の求め方を教えてください。
きちんとプログラムする。
とりあえず、GetLastError() ぐらい覚えろよ。
311
名前:
デフォルトの名無しさん
:03/05/27 23:21
CString cs;
m_combo1.GetWindowText(cs);
という記述をOnButton関数内で行ない、デバックしてみるとcsに関して以下のような
CXX0017: Error: シンボル "cs" が見つかりません
というようなコメントがでて、コンボボックス内に表示している文字を読み取ることができませんでした。
何故なのでしょうか。だれか教えてください。
312
名前:
デフォルトの名無しさん
:03/05/27 23:24
>>311
リビルドしてみれ。
たまにそんなことがある。
313
名前:
デフォルトの名無しさん
:03/05/27 23:26
>>312
やってみましたが、だめでした・・・
314
名前:
デフォルトの名無しさん
:03/05/27 23:33
>>313
ポインタが有効か?
&csとか0xfdfdfdだったりして。んなこたなかったら
TRACE()でみてみれ。
315
名前:
デフォルトの名無しさん
:03/05/28 00:23
例外処理についての質問です。
例外処理 (初回) は test1.exe (MFC42D.DLL) にあります: 0xC0000005: Access Violation。
例外処理 (初回) は test1.exe (KERNEL32.DLL) にあります: 0xC0000027: (名前がありません)。
例外処理 (初回) は test1.exe にあります: 0xC0000005: Access Violation。
このような例外処理が出てしまうのは何故なのでしょうか?
どのような対策をほどこせばいいのですか?
教えていただけると幸いです。
316
名前:
デフォルトの名無しさん
:03/05/28 00:36
>>315
再起動せよ。
マジで言うなら「ソースさらせ」。対処のしようがねーんですが。
317
名前:
デフォルトの名無しさん
:03/05/28 01:43
>>315
アクセス違反とかかな。
落ちたときにデバッガのコンテキスト見てみるとか、ステップ実行で落ちる瞬間を
つきとめるとかして。
318
名前:
デフォルトの名無しさん
:03/05/28 07:33
すみません。TRACEマクロを使用しても出力ウィンドウに
値が出力されない(出力された気配も無い)のですが
どうしてなのでしょうか?
319
名前:
デフォルトの名無しさん
:03/05/28 09:16
>>318
まさかとは思うが、Releaseビルドじゃないよな?
320
名前:
デフォルトの名無しさん
:03/05/28 09:36
どうせF5じゃなくてCtrl+F5で実行して出ないって言ってんだろ
321
名前:
山崎渉
:03/05/28 12:28
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
322
名前:
デフォルトの名無しさん
:03/05/28 13:58
age
323
名前:
デフォルトの名無しさん
:03/05/28 14:13
C++ Builder初心者なのですが
Edit1やEdit2など数字の部分を変数等でLoop処理(移動)することは出来ないでしょうか?
例:int i;
AnsiString s[10];
for(i=1;i<=10;i++)
s=Edit(i)->Caption;
ッてこんな感じにiの部分でEditを変える方法です
324
名前:
デフォルトの名無しさん
:03/05/28 14:33
>323
ここはVC++スレなわけだが。
325
名前:
デフォルトの名無しさん
:03/05/28 14:35
すれ違いって教えてもらったのでここに来ました
>あるWindowsで動いてるプロセスの指定したメモリアドレスの値を取得したい場合は
>どうしたらいいのでしょうか?
>たとえば起動しているaaa.exeのメモリ0x41000の値を10進数で表示したいという感じです
という質問をしまして、そこでReadProcessMemoryを使えといわれました。
その後調べてみて
ReadProcessMemoryの前にOpenProcessをすればよさそうだということはわかったのですが
OpenProcessの第3パラメータのプロセス識別子をaaa.exeから取得する方法が分かりません
知っている方がいたらおしえてください
326
名前:
デフォルトの名無しさん
:03/05/28 15:17
C++共通の質問ですが、コンパイラによって動作が違うかもしれないので、
(VCにて作業しているので)ここに書かせてもらいます。
STL のdeque や vectorにおいて resize();で配列数を増やして
/* vector に入れるコンテナのタイプは適当なクラス*/
v[3].m=value;
このようにアクセスできますが、たとえば
v.resize(5);//要素数5
v[4].m=100;//コンテナの最後にアクセス これは問題なし
i=v[4].m;//iには100が入る
v.pop_front():;先頭のコンテナ除去
i=v[4].m;//iには何が入る?????
v[4].m=value;//<-koko
についていったいどういうことがおきるのでしょうか?
1 メモリ保護エラー
2 削除したのは先頭だけどINDEXとのリンクは保持してるから
iには100がはいるし読み出しもOK
3 resizeによって多めにメモリを確保しているので、メモリ保護エラーには
ならないが、不可思議なことがおこる。
4 神様だけが知っている。
ご存知の方がいらしたら教えてください
327
名前:
デフォルトの名無しさん
:03/05/28 15:56
>>326
【C++】template 統合スレ -- Part2
http://pc2.2ch.net/test/read.cgi/tech/1047978546/
ってのがあるよ。
どうでもいいけど「コンテナ」と「要素」を勘違いしてない?
328
名前:
デフォルトの名無しさん
:03/05/28 16:30
>>325
ウィンドウハンドルを列挙して、ウィンドウハンドルから実行ファイル名を取得する。
それがaaa.exeだったら、GetWindowThreadProcessIdでウィンドウハンドルからプロセスIDを取得する。
実行ファイル名じゃなくて、ウィンドウ名から取得するなら、
FindWindowとGetWindowThreadProcessId使うだけなので楽。
329
名前:
デフォルトの名無しさん
:03/05/28 16:37
>>325
http://www.google.com/search?num=1050&lr=lang_ja&q=Win32%20
でアプリケーションを列挙する方法
330
名前:
デフォルトの名無しさん
:03/05/28 17:31
>>328
ありがとうございました。
おかげでコンソール上では値を取得できたのですが、
画面をつけたらコンパイルのエラーになりました。
hWnd = FindWindow("プロセスのクラス名", NULL);
この部分で以下のエラーが返されます
error C2440: '=' : 'class CWnd *' から 'struct HWND__ *' に変換することはできません。
どうもFindWindowがCWnd::FindWindowと解釈されてしまってるようなのです
これを防ぐ手は無いでしょうか?
331
名前:
デフォルトの名無しさん
:03/05/28 17:40
:: をつける。
::FindWindow
332
名前:
デフォルトの名無しさん
:03/05/28 17:57
ありがとうございました^^
分かってみれば簡単なことなんですね
Windowアプリケーションは真似以外では今日はじめて作るので
こまってました
333
名前:
デフォルトの名無しさん
:03/05/28 19:54
分かってみればってホンマにわかっとんかいな
スコープについて勉強したほうが
334
名前:
デフォルトの名無しさん
:03/05/28 20:07
× 分かってみれば
○ 答えを聞いて分かったつもりになってみれば
335
名前:
253
:03/05/28 21:24
あるポインタ(可変長の配列を作りたい)を
作ってfor文のなかで
malloc関数を使って長さを指定しました。
そしてfor文で一回ループをした後、
配列の長さを変えたい為にまたmalloc
関数を使って長さを指定します。
1ループ前に作った配列のメモリを
開放するために以下の記述をしました
if(hairetu != NULL)
free(hairetu);
そうするとhairetuはNULLではないので
条件を満たすのですがfreeをすると
エラーになってしまいます
for文の中でメモリ開放はできないのでしょうか?
一つの変数に一度しかfreeはできないのでしょうか?
336
名前:
デフォルトの名無しさん
:03/05/28 21:50
-1.4208909612724965e+005
みたいな数字をファイルから入力する場合、
fscanfの中の % 以降はどんなのつければいいんですか?
%eじゃうまくいきませんでした。
337
名前:
デフォルトの名無しさん
:03/05/28 22:03
あげ
338
名前:
デフォルトの名無しさん
:03/05/28 22:17
>>335
ぐちゃぐちゃ説明せんと、コード晒せや。
それから、if(hairetu != NULL) free(hairetu); なんてやってると、知ったかに叩かれるから、free(hairetu); だけにしときな。
>>336
double d;
fscanf(..., "%le", &d);
339
名前:
デフォルトの名無しさん
:03/05/28 23:09
>>335
std::vectorかstd::list使へ。
340
名前:
デフォルトの名無しさん
:03/05/28 23:28
その前にnewとdelete使えと思ったんですが・・・ダメ?
341
名前:
デフォルトの名無しさん
:03/05/28 23:41
>>340
いや、俺もそうは思ってたんだが…
結局使う人がそれを使うと言うとその条件で考えるしかない。
342
名前:
デフォルトの名無しさん
:03/05/29 00:00
realloc使っとけ
343
名前:
デフォルトの名無しさん
:03/05/29 00:03
だってmalloc使ってる人がstd::vector使うなんて違和感が・・・
344
名前:
洗濯犬
:03/05/29 01:20
初心者です。
今、MFCの学習を進めるか、
それともフレームワークだけに専念するか迷っています。
どうかいいアドバイスをお願いします。
345
名前:
デフォルトの名無しさん
:03/05/29 06:10
すみません質問です。リソースに割り当てられた
既存のメニュー項目のコマンドIDから
先頭のメニュー項目を0とする
メニュー項目の位置(行)を調べる
方法を教えてください。
346
名前:
_
:03/05/29 06:33
http://homepage.mac.com/hiroyuki43/jaz10.html
347
名前:
デフォルトの名無しさん
:03/05/29 07:22
Visual C++.NETアカデミック買ったんですが、コンパイラってどれですか?
コンパイラにパスを通したいんですがどれかわからないです・・・
348
名前:
345
:03/05/29 07:54
自己解決しました。
UINT C**::GetMenuItemIndex( HMENU hMenu, _ItemIDType ItemID )
{
// 変数の宣言
UINT unitMenuItemIndex; // 戻り値
int intCountI; // カウンタ
int intMenuItemCount; // メニュー項目の個数
intMenuItemCount = GetMenuItemCount(hMenu);
for (intCountI = 0; intCountI <= intMenuItemCount - 1; intCountI++)
{
if ( ItemID == GetMenuItemID(hMenu, intCountI) ) // 見つかった場合
{
return intCountI; // メニュー項目の位置を返す
break;
}
}
return -1; // 見つからなかった場合、負の値を返す
}
という構文を作ったら、無事取得できました。
349
名前:
デフォルトの名無しさん
:03/05/29 08:41
>>344
MFCってSDKの知識がないと使えないと思うよ。
Windowsのプログラミング作法を学ぶという意味でもまずはSDKをさらりと勉強してはいかがだろうか。
350
名前:
デフォルトの名無しさん
:03/05/29 09:18
>349
ちなみに俺はそのように(MFCの前にSDKやれば〜)教わってSDKから
始めたが、より薄いラッパーのATL/WTLに進んでしまった(w
351
名前:
デフォルトの名無しさん
:03/05/29 11:00
あるダイアログアプリケーションをつくったのですが
値の変更がダイアログ上のエディットボックスに反映されません
ダイアログにはボタン1つとエディットボックスが1つで
エディットボックスにはメンバ変数としてint型の変数が割り当てています。
そしてボタンをおしたら関数が走り
その関数の最後でそのm_data1 = 計算後の値;
という感じでデータを代入しているのですがエディットボックスの中身は0のままです
どうしたら価が変更されてくれるのでしょうか?
352
名前:
デフォルトの名無しさん
:03/05/29 11:09
エディットボックスにm_data1をいれる
353
名前:
デフォルトの名無しさん
:03/05/29 11:20
すいません言葉がたりませんでした
>エディットボックスにはメンバ変数としてint型の変数が割り当てています。
これがm_data1なんですが、これがすでにエディットボックスに値を入れてる
とおもっていたのですが違うのでしょうか?
354
名前:
デフォルトの名無しさん
:03/05/29 12:38
>>315
>>316
ありがとうございました.もう一回ソースを見直すことにします.
355
名前:
デフォルトの名無しさん
:03/05/29 12:50
>351
UpdateData(FALSE);
356
名前:
デフォルトの名無しさん
:03/05/29 13:34
USER-AGENTをレジストリをいじらずに変更したいのですが、
ヒントをください。
答えもOK4☆
357
名前:
デフォルトの名無しさん
:03/05/29 14:15
vcマンセーage
358
名前:
デフォルトの名無しさん
:03/05/29 16:09
>>356
通信をフックして書き換えればいい
359
名前:
デフォルトの名無しさん
:03/05/29 18:24
すいません。ピクチャボックス全体の大きさをウインドウを開く、もしくは
ボタンを押すことによって動的に変化させることはできますか?
360
名前:
デフォルトの名無しさん
:03/05/29 19:59
>>350
俺は自分でクラス作っちまった…
361
名前:
デフォルトの名無しさん
:03/05/30 00:14
ボタンとかチェックボックスとかって自作できるみたいですけど
どうすれば良いですか?
何から手を付ければ良いか…
もしかして、Win32スレのほうか!?
362
名前:
デフォルトの名無しさん
:03/05/30 00:17
何で自作したいのか?しなくていいならしないほうがいいと思うが。
363
名前:
デフォルトの名無しさん
:03/05/30 01:33
>>359
CWndの派生クラスなら簡単にできるだろう
>>361
1から作るのか?先ずはCButtonをサブクラス化することから始めてはどうか?
364
名前:
361
:03/05/30 02:03
>>363
すまん、MFC使ってないんだ…
1から作ることになる。
多分BMPかなにかでボタンのCGを書くと予想しているんだが。
365
名前:
359
:03/05/30 03:53
>>363
ありがとうございます。たぶんSetWindowPos関数だと思うのですが。
今のところ動的に変わらなくてちょっと困ってます。
記述の仕方がよくわかりません。
Rect rect;
CWnd * Wnd;
Wnd = GetDlgItem(IDC_PICTURE);
Wnd->GetclientRect(&rect);
として元のピクチャボックスの情報を手に入れた後
状況に応じてrect.topの位置を可変にしたいのです。
どうしていいかイマイチわかりませn
366
名前:
デフォルトの名無しさん
:03/05/30 11:06
>>361
カスタムコントロールはMFC使わないと作れないんじゃないの
よくしらんけど
367
名前:
デフォルトの名無しさん
:03/05/30 11:27
>>366
よくしらんのなら、いい加減な嘘を口走るな
何故知りもしないくせに、平気で間違ったことを書き込めるのだろう
だいたいMFCでしか作れないのなら、
ソースコードが存在するMFCそのものが作れず存在しないことになる
そんな矛盾くらい少し考えれば分かるだろう
368
名前:
デフォルトの名無しさん
:03/05/30 11:51
366の云う「カスタムコントロール」にはActiveX臭さを感じる
369
名前:
デフォルトの名無しさん
:03/05/30 12:00
>>361
例えば CodeGuruの Other Controls -> Customized Check Boxes とか。SDKの
サンプルあるよ。普通のボタンなら Button Controls にいっぱいあると思う。
>>365
(コントロールのCWnd*)->GetWindowRect(rect);
(親ウィンドウのCWnd*)->ScreenToClient(rect);
みたいにコントロールの、親ウィンドウ座標系での位置を知れば、あとは
SetWindowPos()なりMoveWindow()なりでいけると思う
370
名前:
366
:03/05/30 13:01
>>367
必死ですね
負けました
371
名前:
デフォルトの名無しさん
:03/05/30 13:31
あるダイアログで開始ボタンをおしたらそのボタン処理をずっとループするようにつくったんですが
ストップボタンを押してもとまらないのです。どういうことなんでしょうか?
あと画面上の値も更新されません。ループを使わず1回だけの処理なら値は更新されるのですが
startbtn
{
for(;;){
処理
外部変数が終了になっているか?
なっていたらbreak;
値更新
}
return;
}
stopbtn
{
外部変数を終了にする
return;
}
372
名前:
デフォルトの名無しさん
:03/05/30 13:48
>>371
まずループ最中に、どうやってボタンのイベントを処理しているのか説明してください
373
名前:
371
:03/05/30 14:44
いえそもそもストップボタンはおしてるんですが
押されて無いようで・・・
374
名前:
デフォルトの名無しさん
:03/05/30 15:04
>>373
フルーズしてんでしょ。ボタン押してからforループ抜けてないんだから。
375
名前:
374
:03/05/30 15:05
フリーズ
376
名前:
デフォルトの名無しさん
:03/05/30 15:08
プリーズ
377
名前:
デフォルトの名無しさん
:03/05/30 15:21
「ボタンが押された」というイベントを捕らえるのにはforループを抜けなければなりませんな〜。
ワーカースレッド作ったりしたらどうだい。
378
名前:
デフォルトの名無しさん
:03/05/30 16:04
PeekMessage();をつかいなさい。
379
名前:
デフォルトの名無しさん
:03/05/30 16:20
そもそもfor文で終了までCPUを占有し続ける作りに問題がある
380
名前:
デフォルトの名無しさん
:03/05/30 16:58
モソモソ
( ( (ε゚Д゚)3
381
名前:
デフォルトの名無しさん
:03/05/30 18:12
classの定義の中で、CString cs[3];
と定義し、コンストラクタ(Dlgの)内で以下のような初期化を行なおうとしました。
cs[0]="hello";cs[1]="good";cs[2]="hi!!";cs[3]="oh!";
けれど、実行及びデバックを行なうと不正処理による強制終了が行なわれてしまいました。
どうすればよいのでしょうか?おしえてください。
382
名前:
デフォルトの名無しさん
:03/05/30 18:18
[3]って0から2まででなく、0から3まで確保するの?
383
名前:
デフォルトの名無しさん
:03/05/30 18:21
>>381
C言語の基礎からやり直し。
384
名前:
デフォルトの名無しさん
:03/05/30 18:31
>>382
すみません
0から2までです。
385
名前:
361
:03/05/30 20:43
やっぱ、無理かな…オリジナルコントロール…
>>371
>>379
氏が言っているように、CPUを優先しつづけます。
なら、話は簡単。
CPUの優先をとけば良いのでは?
Sleep(0);
をfor分の中に入れれば多分良いはず。
386
名前:
デフォルトの名無しさん
:03/05/30 20:49
>>361
>>369
387
名前:
361
:03/05/30 21:09
>>386
ぐは!書かれてるじゃん…なに見てんだろ…俺
369氏、ありがとうございます。
即研究してみます。
>>371
ちなみに、そのfor文…コントロールのコードに直接書いちゃ駄目だ。
マルチスレッドなら上手くいく。
ちなみに、こんな感じ(かなりいい加減&MFCなのは許してちょ)
Button1を押すとfor文開始。
Button2を押すとfor文抜けて、メッセージボックス出力
388
名前:
361
:03/05/30 21:09
static UINT aaa( LPVOID param );
BOOL sw
void CTest11Dlg::OnButton1()
{
AfxBeginThread( aaa, ( LPVOID ) this -> m_hWnd, THREAD_PRIORITY_HIGHEST );
}
void CTest11Dlg::OnButton2()
{
sw = TRUE;
}
static UINT aaa( LPVOID param )
{
sw= FALSE;
for( ;; )
{
Sleep( 0 );
if( sw == TRUE )
{
break;
}
}
MessageBox( ( HWND ) param, "aaa", "AAA", MB_OK );
return 0;
}
389
名前:
361
:03/05/30 21:10
static UINT aaa( LPVOID param );
BOOL sw;
void CTest11Dlg::OnButton1()
{
AfxBeginThread( aaa, ( LPVOID ) this -> m_hWnd, THREAD_PRIORITY_HIGHEST );
}
void CTest11Dlg::OnButton2()
{
sw = TRUE;
}
static UINT aaa( LPVOID param )
{
sw= FALSE;
for( ;; )
{
Sleep( 0 );
if( sw == TRUE )
{
break;
}
}
MessageBox( ( HWND ) param, "aaa", "AAA", MB_OK );
return 0;
}
390
名前:
361
:03/05/30 21:11
あれ?
2回も書かれてる…スマソ
391
名前:
デフォルトの名無しさん
:03/05/30 23:00
特に優先すべき物でなければタイマー利用してもいいかもね。
392
名前:
デフォルトの名無しさん
:03/05/30 23:01
( LPVOID ) this -> m_hWnd
MFC使ってんならこうしようぜ
( LPVOID ) GetSafeHwnd()
393
名前:
デフォルトの名無しさん
:03/05/30 23:31
>>392
いや、元々MFC使ってないし…それしか取得方法知らなかったからね。知識になった。
394
名前:
デフォルトの名無しさん
:03/05/30 23:52
質問です。VC++6.0 MFCでアプリを作ってるんですけど、
クラス外からもアクセスできる外部変数は普通はどのように宣言しますか?
やっぱりcppの先頭でグローバル宣言しておいて、他のクラスでextern宣言して
使用するのが普通なのですか?
今、あるクラスのpublicでメンバ変数(char [255])を宣言しておいて、他のクラスからは
CXxxx* pApp = (CXxxx*)AfxGetApp();
として、pApp->メンバ変数にアクセスしてますが、アサートを起こします。
やり方が間違っているのでしょうか?
395
名前:
デフォルトの名無しさん
:03/05/31 00:06
>>394
全てのクラスでインクルードするstdafx.h内でexternすれば(以下略
396
名前:
デフォルトの名無しさん
:03/05/31 00:09
>>394
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
でやれって…そっちの方が詳しく説明してくれるはず。
397
名前:
デフォルトの名無しさん
:03/05/31 00:20
VCで作ると、ちょっと容量食うので
Cでコンソール出力しか使わないときは、ソースファイルだけメモ帳で書いて
コマンドプロンプトからコンパイルしたいんですけど、
VCの場合、mspdb70.dllが見つからないとかいってclコマンドが使えません。
再インストールしても出来ないんですが、無理なんですか?
398
名前:
デフォルトの名無しさん
:03/05/31 00:20
シンタックスエラーってなんですか?
399
名前:
デフォルトの名無しさん
:03/05/31 00:23
>>398
ブンポのエラー
400
名前:
デフォルトの名無しさん
:03/05/31 00:49
>>399
どうもです。
でも、わざわざ,シンタックスエラーなんて小難しい言葉使わないで、普通に”構文エラーが出ました”って書けば良いのに・・・と思ってしまうんですが、何か違いがあるんですか?
401
名前:
デフォルトの名無しさん
:03/05/31 01:06
>>400
突き詰めていくと、なんで「エラー」っていう小難しい言葉を使うんだ?
「誤り」って書けば良いのに… っとなる。
402
名前:
デフォルトの名無しさん
:03/05/31 01:10
構造体について質問です。
public内に
struct set{・・・・・・・}
struct set mySet;;
っていうように宣言することってできない?
クラス内共通してmySetを使いたい場合はどうすればよいのでしょうか?
403
名前:
デフォルトの名無しさん
:03/05/31 01:11
>>401
そうっすね・・・・
404
名前:
デフォルトの名無しさん
:03/05/31 01:15
>>402
struct set{ }
これの最後のセミコロン抜けてないか?
405
名前:
デフォルトの名無しさん
:03/05/31 01:19
>>404
書き忘れました。ごめんなさい。
406
名前:
デフォルトの名無しさん
:03/05/31 08:09
>>400
そのほうがかっこいいからだろ?
407
名前:
デフォルトの名無しさん
:03/05/31 09:02
>>402
ゲッ、マルチかよ。
氏ね。
408
名前:
デフォルトの名無しさん
:03/05/31 09:59
>>407
ほんとだ…しかもMFCスレにわざわざ書くなよ…向こうは激しくスレ違いだと思う。
せめて何日か経って、返事がまるで来なかったら移るとかさ…
409
名前:
デフォルトの名無しさん
:03/05/31 10:39
あのー、激しく初心者な質問で申し訳ないんですが・・・
HDC BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);
BOOL EndPaint(HWND hWnd, CONST PAINTSTRUCT *lpPaint);
上の関数の最後の引数には * がつかなくて、下の関数の最後の引数には
* がつく理由がわかりません。一応値渡しと参照渡しの違いは理解しているつもりです。
本に載ってたコードでは下のように両方ともに構造体のアドレスを渡しているようですが・・。
hdc = BeginPaint(hWnd, &ps);
.
.
.
EndPaint(hWnd, &ps);
ハァ、私はプログラムに向いてないのでしょうか・・・
410
名前:
デフォルトの名無しさん
:03/05/31 10:58
>>409
定義をたどれ。
typedef struct tagPAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
411
名前:
デフォルトの名無しさん
:03/05/31 10:59
winuser.hのどこかに
typedef PAINTSTRUCT *LPPAINTSTRUCT;
相当の記述があるよ。
412
名前:
デフォルトの名無しさん
:03/05/31 11:12
>>本に載ってたコードでは下のように両方ともに構造体のアドレスを渡しているようですが・・。
これは正しい。書き方が違うだけで、2つは同じ型。
型名の先頭に"LP"が付くと、元の型のポインタ型をさすってこと。
413
名前:
直リン
:03/05/31 11:13
http://homepage.mac.com/yuuka20/
414
名前:
デフォルトの名無しさん
:03/05/31 11:23
むしろ、なぜ BeginPaintは LPPAINTSTRUCTで EndPaintは PAINTSTRUCT * なのか?
415
名前:
デフォルトの名無しさん
:03/05/31 11:33
>>397
新規作成->Win32 Console Application
じゃだめだってことか?
416
名前:
デフォルトの名無しさん
:03/05/31 11:44
.NET Framework を使わない場合、VC++6.0で十分でしょうか?
.NET 2003 の 新しい Windows フォーム デザイナ ってのが気になってるんですが。
417
名前:
デフォルトの名無しさん
:03/05/31 11:58
>>414
BeginPaintでは書き換わるけど、
EndPaintでは書き換わらないから。
418
名前:
デフォルトの名無しさん
:03/05/31 11:59
>>416
十分の定義による。
419
名前:
デフォルトの名無しさん
:03/05/31 12:13
なぜに CONST LPPAINTSTRUCT じゃないんだろうね。
LPCPAINTSTRUCT も定義されてないみたいだし、MSは統一する気はないのかな。
ちなみに、CWndクラスのメンバ関数では両方とも LPPAINTSTRUCT になっておりますな。
420
名前:
デフォルトの名無しさん
:03/05/31 12:14
なぜ、を始めるとキリがないと思う・・・
421
名前:
409
:03/05/31 13:13
みなさんレスありがとうございます。
正直、わかったようなわからないような・・・。
型が同じならなぜ書き方が違うんだろう。
とりあえず、もっと詳しくなってきたら疑問は解決するかもしれないんで
先に進むことにします。
こーゆー細かいところで詰まって考え込んでしまう。。。
422
名前:
デフォルトの名無しさん
:03/05/31 13:39
まあ、MS のミスだろ。
実害は無いから、放置されてるんだと思うよ。
自分のプログラムでも、あまり細かいとこまで気にしだすとキリがなくなるからほどほどにな。
423
名前:
デフォルトの名無しさん
:03/05/31 18:18
>>409
一瞬オレのコピーロボットだと思った。
実は今朝、丁度同じ時間くらいに同じ疑問を持った。
びっくり。
共に頑張ろう。
424
名前:
デフォルトの名無しさん
:03/05/31 18:32
VC++のふりーのこんぱいらってないんですかね?
425
名前:
デフォルトの名無しさん
:03/05/31 18:34
>>424
ネタ?
C++ならあるけどな。
VC++はMSの商品名だろ。
426
名前:
デフォルトの名無しさん
:03/05/31 18:34
どういう意味だろ。VC++完全互換のフリーコンパイラという意味かな?
427
名前:
デフォルトの名無しさん
:03/05/31 18:59
おいおまいら、
>>424
は釣りだぞ!
引っかかるなよ!
428
名前:
デフォルトの名無しさん
:03/05/31 19:00
>>427
荒らしは.NETスレに逝ってください。
429
名前:
デフォルトの名無しさん
:03/05/31 19:56
>>428
同意。
430
名前:
デフォルトの名無しさん
:03/05/31 20:44
>>422
気にしすぎると仕様厨へと変身してしまうからな
>>424
.NET Framework SDKのことか?
431
名前:
デフォルトの名無しさん
:03/06/01 04:09
>>419
一応つっこんどくけど
const LPPAINTSTRUCT p ;
は
PAINTSTRUCT* const p ;
と同じ意味になるよね。関数の引数にするときはあんまり意味がない。
LPCPAINTSTRUCT を作るとしたら
typedef const PAINTSTRUCT* LPCPAINTSTRUCT;
かな。
const LPPAINTSTRUCTとは意味が違う。
432
名前:
デフォルトの名無しさん
:03/06/01 11:05
>>419
頭文字に「LP」と付く構造体、変数は「ロング・ポインター」の略。
意味はそのまま。
つまり、「*」を付けて宣言しているのとほぼ同意。(詳しくはあまり知らないけど)
433
名前:
デフォルトの名無しさん
:03/06/01 11:19
ウインドウの同じ位置(座標)に2つの色を表示して、
一方は透過性をもつようにしたいです。
それはできるのでしょうか?単純には無理ですかね
434
名前:
デフォルトの名無しさん
:03/06/01 11:21
2000/XPなら単純にできるAPIがあるけど
435
名前:
433
:03/06/01 13:05
あ、2000です。すいません。いわなかったのはわざとじゃありません。
教えていただけるとありがたいです。
436
名前:
397
:03/06/01 14:42
>>415
それで作るとデバックとかが含まれてファイルが大きくなるので
あくまでソースファイル単体だけにしたかったのです。
でも、なんとかやり方見つかりました。
お騒がせしました。
437
名前:
デフォルトの名無しさん
:03/06/01 14:58
>>436
根本的に理解が間違ってる予感
438
名前:
デフォルトの名無しさん
:03/06/01 14:59
>>435
とりあえず「透過」「ウィンドウ」「API」
ttp://www.google.com/search?hl=ja&ie=UTF-8&oe=utf-8&q=%E9%80%8F%E9%81%8E+%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6+API
439
名前:
デフォルトの名無しさん
:03/06/01 15:00
>>436
サイズがでかいのがイヤならReleaseでコンパイルすりゃいいと思うんだけど……
440
名前:
デフォルトの名無しさん
:03/06/01 15:19
タイトルの所にFPS表示させるのって
もしかして相当に無駄?
441
名前:
デフォルトの名無しさん
:03/06/01 15:54
>>437
いや、絶対間違ってる。
442
名前:
397
:03/06/01 17:58
.NETなんですけど、よく見たら
win32じゃなくて、コンソールアプリの方でやってました。
これからはwin32コンソールでやります。
すいませんでした。
443
名前:
397
:03/06/01 18:10
>>442
今までアカデミックについてくるC/C++コンソールのほうで
やってたってことです。
いちお、わかりにくい文だったので訂正を。
444
名前:
デフォルトの名無しさん
:03/06/01 19:06
WM_PAINTメッセージをフックしようと思い、WH_CALLWNDPROCでフックしたら、
マウスメッセージがとれません。両方フックする方法はありませんか?
445
名前:
デフォルトの名無しさん
:03/06/01 20:46
>>444
WH_MOUSEもフック
446
名前:
デフォルトの名無しさん
:03/06/01 21:40
激初心者質問で申し訳ないのですが、
Win32 Debugでビルドした場合は特に問題がなく、
Win32 Releaseでビルドしたアプリの方で原因不明のバグが
出て落ちるのですが、このようなことは起きるものなのでしょうか。
自分のコードがまずいのは分かっているのですが・・・
(エラーチェックをほとんどしていない等)
447
名前:
デフォルトの名無しさん
:03/06/01 21:42
>>446
ソースの何処かにバグがある。
自力で調べれ。
448
名前:
デフォルトの名無しさん
:03/06/01 21:54
>>446
デバッグの逆汗ながめりゃわかるだろ?
449
名前:
デフォルトの名無しさん
:03/06/01 21:55
>>446
よくあるこっちゃ。エラーチェックサボっちゃダメよ。
初期化してない変数とかないか?デバッグだと勝手に0が入ってて
落ちずに走っちゃうこととかある。
450
名前:
デフォルトの名無しさん
:03/06/01 21:59
>>446
まずいのがわかってるなら直せ。
たとえばASSERTやVERIFY、TRACEを使うとかな。
451
名前:
デフォルトの名無しさん
:03/06/01 22:04
稀に最適化のバグもあるけどな
一度しか遭遇したこと無いが(もう修正されたし)
452
名前:
446
:03/06/01 22:47
みなさんレスありがとうございます。
>デバッグの逆汗
アセンブラ?は分からないのですが、よい機会なので
勉強してみます。
>初期化してない変数とかないか?
う、この辺が原因かもです。
>ASSERTやVERIFY、TRACE
デバッグの基本を知らな杉でした。
早速使ってみます。
うぐー、気合入れて直します・・・
453
名前:
デフォルトの名無しさん
:03/06/01 23:11
ttp://www.nitoyon.com/vc/tutorial/debug/win32.htm
ここなんか参考になるんじゃない?最後笑えるし、おすすめ
454
名前:
デフォルトの名無しさん
:03/06/02 12:39
配列は普通0から始まりますが、int hairetu[-1~4]等とすると-1,0,1,2,3,4のを
用意できるみたいなのはありますか?あるなら教えてください。
ゲームを作っていて、それは、データが0から16毎に並んでいるので、よくnum/16
みたいな使い方をします。-1はデータを使わない時に使っていて、-1をそのまま
配列に当てはめてしまうと、あふれてしまいます。だから、始めに配列の範囲か
しらべてから、当てはめなければ成りません。0を使わない場合にして、1から16毎
にすると、(num-1)/16としなければ成りません。こちらの解決方法でも良いですが。
455
名前:
デフォルトの名無しさん
:03/06/02 12:43
書き込む前に一度文章を推敲してください。意味不明です。
456
名前:
デフォルトの名無しさん
:03/06/02 13:01
>>455
int hairetu[5]={0,1,2,3,4};
int hairetu2[-1~4]={-1,0,1,2,3};
hairetu2[-1]==-1
と言うことです。
457
名前:
デフォルトの名無しさん
:03/06/02 13:08
そういうクラス作れ。
458
名前:
デフォルトの名無しさん
:03/06/02 13:11
出来ん(w
459
名前:
デフォルトの名無しさん
:03/06/02 13:12
>>454
これを参考にしろ
わかんなかったらあきらめろ。
template<class T> class Array {
const int limit;
T* a;
public:
A( int aLimit ) : limit(aLimit), a( new T[limit] ) {}
T& operator[]( int i ) {
if( 0 <= i && i < limit )
return a[i];
else
throw out_of_range("shine");
}
};
460
名前:
デフォルトの名無しさん
:03/06/02 13:12
そっか。オーバーロードと言う手があるか。
461
名前:
デフォルトの名無しさん
:03/06/02 13:12
じゃああきらめろ。VCにそんな機能無い。
462
名前:
デフォルトの名無しさん
:03/06/02 13:20
>456
それって結局、if(num==-1)若しくはif(hairetu2[num]==-1)を
どっかでやるんじゃないのか? 意味あんの?
463
名前:
デフォルトの名無しさん
:03/06/02 13:20
int a[4] = {-1,0,2,3};
int* p = a+1;
printf("%d",p[-1]);
この程度のことも思いつかないのか・・・
464
名前:
デフォルトの名無しさん
:03/06/02 13:38
>>459
少しなんとなく分かります。ありがとうございます。
>>460
>>459
の事?
>>461
分かりました。あればよかったんですが。
>>462
うまく説明できないのですが。将棋なんかでもそうなんですが、1~9の9つ
しか直接的に使わないのに0と10も間接的に使いました。ただ、将棋の場合
は0~8を直接的に使うよりは、1一みたいに1からなので、そのままにしました。
>>463
使う前に、1文余分に書かなければならないでしょう。
465
名前:
デフォルトの名無しさん
:03/06/02 14:17
マジックナンバ使うのやめれ
466
名前:
デフォルトの名無しさん
:03/06/02 14:30
マイナスを使う例
int main(int argc, char* argv[])
{
char sage[8] = "abcdefg";
char* age = &sage[3];
for( int i = -3; i < 4; i++ )
{
printf("%c", age[i]);
}
return 0;
}
467
名前:
デフォルトの名無しさん
:03/06/02 14:32
……って、463と同じか。
468
名前:
デフォルトの名無しさん
:03/06/02 14:44
1文くらいいいじゃん
469
名前:
デフォルトの名無しさん
:03/06/02 14:54
つーか範囲チェックや-1を与えればインデックス0要素が取得できるような処理をラップしたクラス作れってことで解決済みだっつの。
470
名前:
デフォルトの名無しさん
:03/06/02 14:59
いろいろ工夫する方法があったんですね。お答えありがとうございました。
471
名前:
デフォルトの名無しさん
:03/06/02 15:59
#define convertnumber(x) ((x)+1)
472
名前:
デフォルトの名無しさん
:03/06/02 16:04
フリーでダウソしてきたラッパクラスを使用時に問題が出てきますた…
関数に与える変数に、
「データの参照:BYTE &」
との記述がされてました。
これはどういった記述をすればよいのでしょうか??
473
名前:
デフォルトの名無しさん
:03/06/02 16:11
具体的には
bool ReadPort( BYTE & )
とゆう関数を呼び出して扱うらしいのですが…
474
名前:
デフォルトの名無しさん
:03/06/02 16:12
普通に変数を渡すだけでいい
勝手に参照渡しになる
475
名前:
デフォルトの名無しさん
:03/06/02 16:15
>>474
そうなんですか!!
さっそくやってみます。ありがとうございました!!
476
名前:
デフォルトの名無しさん
:03/06/02 17:09
いくら初心者とはいえ甘やかしすぎ……
477
名前:
名無しさん
:03/06/02 17:26
wavファイルの音程を上げ下げするには、どうすれば良いでしょうか?
478
名前:
デフォルトの名無しさん
:03/06/02 17:35
>>477
ttp://www.wotsit.org/search.asp?page=8&s=music
ここから仕様書をダウンロードしてじっくり読め。
479
名前:
デフォルトの名無しさん
:03/06/02 20:13
例えば0.1sごとに処理をさせたい場合はどのような関数を使って、記述すればよいのでしょうか?
また、参考できるHPとかもあったら紹介していたただけるとうれしいです。
480
名前:
デフォルトの名無しさん
:03/06/02 20:25
>>479
SetTimer()
481
名前:
デフォルトの名無しさん
:03/06/02 21:05
ライセンス違犯しているのですが、あと2ヶ月でアンインスコするんで見逃してください。本当にスマソ。
前期だけのプログラミングの講義があるので自宅でもできるように友達からVC6の1枚のCDを借りたのですが、
その人はCDは1枚しかないと言うのですが、正直HELPが無いと教科書しか参考にできません。
それで、ヘルプが無いのでVB6を持っている人からMSDNライブラリというCDを借りて導入したのですが、
これでVC6Proのヘルプはカバーできますか?(サンプルが無いような気がするのですが。)
何かとんでもない質問したような気がするんですがすみません。。。
482
名前:
デフォルトの名無しさん
:03/06/02 21:12
>>480
ありがとうございます。SetTimerについて調べてみたのですが、まだVCを始めたばかりで解らないところがありました。
UINT SetTimer(
HWND hWnd,// handle of window for timer messages
UINT nIDEvent,// timer identifier
UINT uElapse,// time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
とあってのですが、hWndの部分がわかりません。
MFCでダイアログを作ってる場合はそのハンドルはどうなるんですか?
宜しければ御教授ください。
483
名前:
動画直リン
:03/06/02 21:13
http://homepage.mac.com/hitomi18/
484
名前:
デフォルトの名無しさん
:03/06/02 21:21
>>481
後二ヶ月待ってアンインストしろ!
485
名前:
デフォルトの名無しさん
:03/06/02 21:27
>>482
ダイアログクラス内でタイマー使うならCWnd::SetTimer();
486
名前:
デフォルトの名無しさん
:03/06/02 21:32
>>484
VCの2枚目以降のディスクがどうなってるかでも教えてくらはい!おながいします。。。
なんでなくしちゃったんだょぅ。。。
487
名前:
デフォルトの名無しさん
:03/06/02 21:39
>>481
見逃せません。即刻アンインストールしなさい。
フリーのコンパイラを使いなさい。
質問の答えだがMSDN Onlineを使えばいいんじゃない?
488
名前:
デフォルトの名無しさん
:03/06/02 21:40
>>482
Cxxx::OnInitDialog()で
SetTimer(1,100,NULL);
を入れる。
100=100ms
WM_TIMERのメッセージハンドラ(OnTimer)内に
処理を書け
489
名前:
デフォルトの名無しさん
:03/06/02 21:41
>>485
なんどもすみません。もし、グローバル関数内でもOKですか?
490
名前:
デフォルトの名無しさん
:03/06/02 22:09
BeginPaintとGetDCを使い分ける意味が分かりません。今の所は、マップ
を表示する時、ShowMapをWM_PAINTと矢印が押された時に呼び出していて、
パラメータにBeginPaintであるかないかを渡しています。それで正しい
ですか?教えてください。
491
名前:
デフォルトの名無しさん
:03/06/02 22:13
>>489
主語を省略すんな。
>>490
その説明でわかってもらえると思う?
492
名前:
デフォルトの名無しさん
:03/06/02 22:23
BeginPaintはWM_PAINTで、それ以外はGetDCと言う以外分かっていないので
質問しました。WM_PAINTは初めて表示する時、隠れた部分が現れた時などの
イベントで、その時にマップを表示します。また、矢印を押すと、キャラの
位置データを移動させた後、マップを表示します。うまく説明できません。
void ShowMap(int begin, ...)//BeginPaintで表示したいなら1
{
hdc=begin?BeginPaint(...):GetDC(...);
//マップの表示//
begin?EndPaint(...):ReleaseDC(...);
}
493
名前:
デフォルトの名無しさん
:03/06/02 22:32
>>487
ナローバンドだからなんとなくオフラインキボンヌ!
ヽ(`Д´)ノウワァァン
494
名前:
デフォルトの名無しさん
:03/06/02 22:44
VC++6.0の二枚目は多分必要ないと思う。
ちなみにヘルプはこれじゃないよ。あれはMSDNライブラリ。
495
名前:
デフォルトの名無しさん
:03/06/02 23:02
わがままなやっちゃなあ。テレホはあんのか?
その間に丸ごと落としたらどーよ?
どっちにしても常時接続じゃないと辛いと思うぞ。
勉強するとき一番役に立つのはGoogleだしな。
496
名前:
デフォルトの名無しさん
:03/06/02 23:04
>>493
ふつうにwebブラウザで参照できる
497
名前:
マルチポストかも、ごめんなさい
:03/06/03 15:48
_T マクロでSJIS/UNICODEを切り分けてRDBに文字を保存できるのは良いと思うのですが、UCS-2でなくUTF-16で保存したい場合にはどういう記述になりますか?
498
名前:
デフォルトの名無しさん
:03/06/03 15:54
>>481
の質問の要点は「VB6を持っている人からMSDNライブラリというCDを借りて導入したのですが、
これでVC6Proのヘルプはカバーできますか」だろ。
答えは「はい」。これだけじゃん。
499
名前:
デフォルトの名無しさん
:03/06/03 16:03
>>492
WM_PAINTメッセージが来るのはウインドウに更新領域(無効領域)が存在するため
BeginPaint()を使うと更新領域がクリアされる。WM_PAINTのメッセージを
受けて、BeginPaint()せずにGetDC()しても更新領域はクリアされないので
すぐにWM_PAINTメッセージがきてしまう(くる必要も無いのに)。
更新領域はInvalidateRect()などで追加する。
通常はなにかの操作で画面を書き換える必要が出ると、InvalidateRect()などを
使って更新領域を設定してWM_PAINT時に描画する
500
名前:
デフォルトの名無しさん
:03/06/03 16:12
すいません マルチポストになっちゃいましたが
どなたさんか教えてください。
同じ cppファイル内で関数 a_Function()というのを作って
それをボタンが押された度に呼出したいのですが
うまくいきません。
a_Function:定義されていない識別子です。のコンパイルエラーが出ます。
VCはまだ浅いので どなたさんか問題点の指摘 アドバイス等
頂けないでしょうか。
ウラワザでクラスウイザードを使用してボタンクリックなどの関数作って
名前を変えるというのを伝授してもらったんですが
肝心のボタン押下の処理でワトソン博士が発生してしまいました
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.