■過去ログ置き場に戻る■ 1- 前250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part13
751 名前:デフォルトの名無しさん :04/08/19 18:24
すみません、馬鹿みたいな質問なのですが、どうしても分かりません。
ピクチャボックスのプロパティを見ることが出来ません。
ピクチャボックスをコントロールボックスから貼り付けたのはいいのですが、
ピクチャボックスを選択して右クリック→プロパティとすると、
フォームのプロパティが出てきてしまいます。
どうすればよろしいのでしょうか?

752 名前:デフォルトの名無しさん :04/08/19 19:32
>>750
dt->stがlt2->st(つまりthis->next->st)よりstrcmpで比較して小さければ、dt->nextにthis->next、this->nextにdtをそれぞれ代入する。
そうでなければどこかに代入するまでwhileでループする。
そのリストはソートされていて、そのソート作業を常に要素の追加時に行っているって具合だろう。
ところで2ヶ所のsw = 0;はどっちもbreak;に書き換え、while (sw > 0)もwhile (1)かfor (;;)に書き換えてswは消滅させた方がいい。

753 名前:デフォルトの名無しさん :04/08/19 19:35
VC++netです。

ダイアログエディタでpicture controlを貼り付け
変数の追加→ CStatic Image_Panel とやって


CBitmap img;
img.LoadBitmap(filename);
Image_Panel.SetBitmap(img);

このようにしたのですが
イメージファイルを表示するには何が足りないのでしょうか?
それとも全然間違ってる?


754 名前:750 :04/08/19 19:54
752さん、解説ありがとうございます。あの、さらに質問なんですが、たぶん自分がオブジェクトを理解してないからなのかも知れませんが、
dt->next, dtはまったく別ものなんでしょうか?


755 名前:デフォルトの名無しさん :04/08/19 22:27
>>753
ファイルから読み込みたいならそれだとダメだね。
CBitmap.LoadBitmapに渡す引数はリソースに展開されてる
ビットマップのリソース名かIDなんで。
ファイルから読み出すならLoadImageかOleLoadPictureを
調べてみると良いよ。

756 名前:デフォルトの名無しさん :04/08/20 01:06
>>750
悪いことは言わん、そんな旧世紀の異物のような書き方をする香具師からC++を学ぶんじゃない。

757 名前:デフォルトの名無しさん :04/08/20 01:27
>>756
おまいより、ましだとは思うが・・・

758 名前:デフォルトの名無しさん :04/08/20 01:35
>>757
EffectiveC++に書かれていること位は理解できたか?

759 名前:デフォルトの名無しさん :04/08/20 01:53
>>758
読んだことありませんが

760 名前:デフォルトの名無しさん :04/08/20 01:55
なにか?

761 名前:デフォルトの名無しさん :04/08/20 02:27
どういう所が旧世紀の異物のような書き方なんですか?

762 名前:デフォルトの名無しさん :04/08/20 02:45
>>熟達者の皆さん
どうか教えてください。僕はjavaしかできない愚か者なんですが,(他スレではjava厨とも呼ばれます)
VC++では,EclipseのようにIDEが認識しているクラスのメンバにはすべて“.”でアクセスできるんですか?
つまり,IDEのエディタ上でオブジェクトの後に“.”を打つとメンバがリスト表示されますか?
↑なんか初心者じみてすいません。例えば↓の感じです。

hogeclass hoge = new hogeclass();
hoge.methodhoge(); ←hogeを打つとメンバがリスト表示

以前使ったLinux用のKdevelop(C++のIDE)ではユーザがヘッダを書いたものに関しては
認識してリストしてくれました。
でも,標準ライブラリのクラスのメンバは認識してリスト表示してくれませんでした。。。
VC++ではどうですか?


763 名前:デフォルトの名無しさん :04/08/20 03:00
deru.

764 名前:デフォルトの名無しさん :04/08/20 03:13
>>761
旧世紀の異物(遺物じゃないのか?w)≒Cと捉えると>756の言いたいことが見えてきそうだ。

765 名前:デフォルトの名無しさん :04/08/20 03:24
>>762
MFC、自作ライブラリ、アプリのクラスを、1つのブラウザ情報で、メンバ表示できてるよ。

766 名前:デフォルトの名無しさん :04/08/20 03:25
>>764 また自作自演ですか

767 名前:デフォルトの名無しさん :04/08/20 03:31
windows.h と valarray をインクルードするとエラーが30個くらいでてくるのですが、どうすればいいのでしょうか?

768 名前:デフォルトの名無しさん :04/08/20 04:00
おまえの質問の仕方だとどうしようもない。

769 名前:デフォルトの名無しさん :04/08/20 04:43
えっと、VC.NET 2003 で、
#include <windows.h>
#include <valarray>

int
main()
{
    return 0;
}

ってやると、

valarray(314): error C2059: 構文エラー : ')'
valarray(321): error C2143: 構文エラー : ')' が '}' の前にありません。
valarray(321): error C2143: 構文エラー : ';' が '}' の前にありません。
valarray(321): error C2143: 構文エラー : '}' が ')' の前にありません。
valarray(323): error C2146: 構文エラー : ';' が、識別子 '_Ty' の前に必要です。
valarray(332): error C2146: 構文エラー : ';' が、識別子 'valarray' の前に必要です。
valarray(321): error C2238: ';' の前に無効なトークンがあります。
valarray(314): error C2334: ':' の前に予期しないトークンがありました。関数の本体は無視されます
valarray(323): warning C4003: マクロ 'max' に指定された実引数の数が少なすぎます。
valarray(314): warning C4003: マクロ 'min' に指定された実引数の数が少なすぎます。

って、エラーが出てくるんです。

770 名前:デフォルトの名無しさん :04/08/20 05:11
>769
ネタか?
吊られてあげよう。
http://www.roguewave.com/support/docs/sourcepro/stdlibref/valarray.html

771 名前:デフォルトの名無しさん :04/08/20 05:51
-DNOMINMAX

772 名前:デフォルトの名無しさん :04/08/20 06:10
>>770
ネタじゃないです…
>>771
max, min が展開されてそれでエラーになっちゃってるってことですかね…?

773 名前:デフォルトの名無しさん :04/08/20 06:36
windows.hでmin/maxという名前のマクロが定義されてるから、その所為。

774 名前:デフォルトの名無しさん :04/08/20 06:44
#define NOMINMAX
で解決出来ました。

マクロが展開されるせいってことはインクルードの順序かえてもどうにか出来ますね。
MS はこんなマクロなんか定義しなきゃいいのに…

775 名前:デフォルトの名無しさん :04/08/20 07:53
リストボックスをクリックした時マウスが指す項目を取得したいのですが

POINT cr;
GetCursorPos(&cr);
BOOL d;
CPoint pt(cr.x , cr.y); //←もっと簡単な方法がある?
int index=n_list.ItemFromPoint(pt, d);

この処理を何度呼んでもindexには同じ数字しか入りません。
それもクリックした番号とは関係ない(と思う)数字が入っています。

どこがおかしいのでしょうか
ご教授願います。

776 名前:デフォルトの名無しさん :04/08/20 09:00
スクリーン座標からクライアント座標に変換しないとだめ
CPoint pt;
GetCursorPos(&pt);
n_list.ScreenToClient(&pt);
BOOL d;
int index=n_list.ItemFromPoint(pt, d);

777 名前:デフォルトの名無しさん :04/08/20 09:43
>>775
そんなややこしいことしないでGetCurSel()で選択アイテムindex取ったら
良いだけなんじゃないの?

778 名前:デフォルトの名無しさん :04/08/20 09:45
>>777
ばかはひっこんでてねw

779 名前:775 :04/08/20 10:28
なるほどーできましたありがとうございます。

>>777
複数選択リストボックスを使っているからです。


780 名前:デフォルトの名無しさん :04/08/20 11:08
C++を学ぶにはどこのサイトがいいでしょうか?できれば、わかりやすく事細かく書いてあるサイトが良いのですが・・・。
それと、オブジェクト指向って要するに何なんでしょうか?よく本屋に行って、C++の本を見ると書いてあるんですが・・・。

781 名前:デフォルトの名無しさん :04/08/20 11:37
VC++.netでActiveXのDataGridコントロールの追加って
どこに行ったんだ??

782 名前:デフォルトの名無しさん :04/08/20 14:35
>>780
マジ最強。
http://www.google.co.jp/

783 名前:デフォルトの名無しさん :04/08/20 16:29
複数選択リストボックスを使っているなら
なおさら..

784 名前:忍玉 :04/08/20 16:34
逆にVC++しかやったことないからオブジェクト指向でない言語がどんなものなのかわかりません

785 名前:デフォルトの名無しさん :04/08/20 16:48
別にVC++はオブジェクト指向でしかソフトを組めないワケではないけどね。

786 名前:デフォルトの名無しさん :04/08/20 17:11
C++でのプログラミング全てに言えるけどね。

787 名前:デフォルトの名無しさん :04/08/20 17:45
オブジェクト指向?

788 名前:デフォルトの名無しさん :04/08/20 18:05
オブジェクト嗜好に走りすぎると却って使えなくなるし

789 名前:デフォルトの名無しさん :04/08/20 18:46
質問です。
SendMessageで文字列を送って、受け取る方法はありますか?
受け取った側でwParamをcharにキャストしても上手くいきません。

790 名前:デフォルトの名無しさん :04/08/20 18:49
どーせプロセス境界でもまたいでるんだろ。
WM_COPYDATAでも使っとけ。

791 名前:マイク ◆yrBrqfF1Ew :04/08/20 18:54
Qtのsignal最高だよな

792 名前:デフォルトの名無しさん :04/08/20 18:54
>WM_COPYDATA
こんなのあるんですね。ありがとうございました。がんばってみます。

793 名前:デフォルトの名無しさん :04/08/21 01:30
SendMessageとPostMessageって
どう違うの?

794 名前:デフォルトの名無しさん :04/08/21 01:30
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=SendMessage+PostMessage&lr=lang_ja

795 名前:デフォルトの名無しさん :04/08/21 04:15
>>789
GlobalAddAtomと任意のメッセージとかもアリ

796 名前:デフォルトの名無しさん :04/08/21 13:38
VC初心者です。

Win32 API
で、ディレクトリ作成や、ディレクトリの存在チェックって
どうするのですか?



797 名前:デフォルトの名無しさん :04/08/21 13:43
CreateDirectory
PathFileExists
FindFirstFile & WIN32_FIND_DATA(FILE_ATTRIBUTE_DIRECTORY)

798 名前:デフォルトの名無しさん :04/08/21 13:46
>>797
ありがとうございます。
早速、やってみます。

799 名前:デフォルトの名無しさん :04/08/21 16:27
レジストリについて教えてください。
私はずっと、UNIX-C やってたので、レジストリに対する読み書きとかしたことないんだけど、
Windowsだと、よくレジストリの読み書きをすると思うのですが、

Windowsでアプリ固有の情報をレジに作成して、起動時に読み込むようにしたいのですが、
レジストリのどこに書き込むのが一般的なのでしょうか?

800 名前:デフォルトの名無しさん :04/08/21 17:43
>>799
ユーザーごとに違う設定が必要 → HKCU
PCで固有 → HKLM

じゃないですかねぇ。

801 名前:799 :04/08/21 17:59
>>800
そのなことくらい分かってんだよ、ぼけ

802 名前:デフォルトの名無しさん :04/08/21 18:15
>>801

>そのなことくらい分かってんだよ、ぼけ

人を装った余計な発言はしないでください。

>>800
ちょっとわからないのが、
HKLMの下のSOFTWARE配下に作ろうと思ってたのですが、
その下のMicrosoft配下に作ってるようなサンプルPGを見かけたので、
一般的なルールがわからないだけに、SOFTWARE配下でもいいのか不安になった次第です。

803 名前:デフォルトの名無しさん :04/08/21 18:24
>>802
他人のやってるの見て真似れば良いんだよ。レジストリ覗いてみたら実例がそのまま
あるんだし。

HKLM\Software\[vendor : author name]\[software name]\

804 名前:デフォルトの名無しさん :04/08/21 18:27
>>802
OKです。

一般的には、
(HKCU | HKLM)\Software\会社名\ソフト名\〜
っていう感じにします。

805 名前:デフォルトの名無しさん :04/08/21 18:28
>>803

どうもです。
Software配下は、ベンダ名になってました。
一般的ルールみたいですね。


806 名前:デフォルトの名無しさん :04/08/21 20:46
VC++でプリプロセッサだけしたソースファイルを
出力したいんですが、どうしたらいいでしょうか?

807 名前:デフォルトの名無しさん :04/08/21 22:01
>>806
プロジェクトの設定→C/C++→リスト出力辺り

808 名前:デフォルトの名無しさん :04/08/22 02:43
コンソールアプリでデバッグライトをprintfしてからreturnして終了しているのですが
これだと一瞬しか表示されないです。そこで最後にgetcharとかしています。
確か終了する前にいったん停止してくれるようVisualStudioに設定するやり方があったと思うのですが
どうやったらよいのでしょう。


809 名前:デフォルトの名無しさん :04/08/22 02:46
VC++6.0のタブコントロールは、それぞれのタブにコントロールを貼り付ける事は出来ないのですか?
自分で選択中のタブインデックスを取得して、コントロール表示を切り替えるしかないのでしょうか?

810 名前:デフォルトの名無しさん :04/08/22 02:58
>>809
出来ます
MSDN参照

811 名前:デフォルトの名無しさん :04/08/22 03:15
>>810
え?そうなんですか?
分かりました。とりあえずヘルプ見てみます。

812 名前:809 :04/08/22 03:29
>>810
いや、やっぱり普通にデザイン画面でそんな事出来そうにないのですが…
第一、どうやってデザイン時にタブを選択したり、デフォルトのタブ数を指定するのでしょう?

自分の頭では、実行時にタブインデックスを取得して、表示コントロールを切り替えるか
コントロールを配置したダイアログを用意して、モードレスダイアログとして表示するくらいしか考え付きません…

宜しければ、MSDNのどの項を参照すれば良いのかご教示下さい。

813 名前:デフォルトの名無しさん :04/08/22 03:51
>>810
「出来ます」って言い切っているのなら「教示」してやればw

814 名前:デフォルトの名無しさん :04/08/22 03:52
AppWizardを使ったダイアログベースのアプリで標準のボタンを配置し、
ClassWizardでダブルクリックイベントをマップしても、自動生成された関数が
実行されないのですが、何故なのでしょうか?
何方かわかったら教えてください。

815 名前:デフォルトの名無しさん :04/08/22 04:39
>>797
なんか微尿に外してるね。
SHCreateDirectoryEx()とPathIsDirectory()の方が使えるかと。

816 名前:デフォルトの名無しさん :04/08/22 04:43
>>815
焦って書いてたから思い付かなかったしw

817 名前:デフォルトの名無しさん :04/08/22 09:51
>>814
もっと詳しく。
しかし、何故にダブルクリックに?

818 名前:デフォルトの名無しさん :04/08/22 10:04
標準ボタンはダブルクリックに反応しないのではなかったか

819 名前:デフォルトの名無しさん :04/08/22 10:24
>>812
>コントロールを配置したダイアログを用意して、モードレスダイアログとして表示するくらいしか考え付きません…

それでいいんじゃない?
プロパティページみたいに子ダイアログを作っといて、タブ切り替えで表示したり隠したり。

820 名前:デフォルトの名無しさん :04/08/22 11:50
リストボックスの各項目の左側にアイコンをつけたいのですが、
これを実現するのって、リストビューというやつですか?

列は一つだけなんですが。

821 名前:デフォルトの名無しさん :04/08/22 11:53
>>812
一度そういうTabCtrlを拡張したクラスを作っておけば、後はほぼポトペタでいけるね。

822 名前:デフォルトの名無しさん :04/08/22 14:49
↓のようにIMEの入力モードを返す関数を作ってるんですが、
ifの中の書き方が正しくないのか、うまく帰ってきません。
あとIME_CMODEのフラグを組み合わせて指定する必要もあるみたいですが
そういう場合の書き方はどうすればいいんでしょうか。

char* IME::GetInputMode()
{
unsigned long Conversion;
unsigned long Sentence;
ImmGetConversionStatus(m_hImc,&Conversion,&Sentence);

if(Conversion=IME_CMODE_JAPANESE)return "あ";
if(Conversion=IME_CMODE_KATAKANA)return "カ";
}

823 名前:デフォルトの名無しさん :04/08/22 14:55
>>822
Cの基礎が・・・

if文、ビットフラグ

824 名前:822 :04/08/22 16:55
ありがとうございます。
とりあえず=じゃなくて&にする事は分かったんですけど、
フラグが2個以上同時に成り立ってるときはどうやって書けばいいのか
分からないであります…

825 名前:デフォルトの名無しさん :04/08/22 17:08
VC++.NET 2002で、デバッガでcharやBYTEなど1バイトの型をウォッチすると、
値が0か-128のどちらかにしか表示されないです。
(実際の値は0x00〜0xFFまでちゃんと保持されてる)
バグ?それともちゃんと表示する方法があるんでしょうか?

826 名前:デフォルトの名無しさん :04/08/22 17:09
>>824
if( hoge & (フラグA | フラグB))
{
// フラグAとBが同時に成り立った
}


827 名前:デフォルトの名無しさん :04/08/22 17:15
>>826
違う

828 名前:デフォルトの名無しさん :04/08/22 17:19
>>824
if(hoge & flag1 && hoge & flag2 …)

829 名前:デフォルトの名無しさん :04/08/22 17:26
>>827
どこが違うの?

830 名前:829 :04/08/22 17:27
すまん、忘れて。

831 名前:825 :04/08/22 17:33
訂正。
マルチバイト文字の1バイト目?の値を持ってる場合、0か-128と表示されてるような感触。
正しい数値を表示する方法無い?

832 名前:822 :04/08/22 17:54
>>826-803
できた!さんくすこ。

833 名前:デフォルトの名無しさん :04/08/22 18:04
VCで、Cのライブラリ関数malloc に相当するAPIってあるのでしょうか?

834 名前:デフォルトの名無しさん :04/08/22 18:14
>>833
VCで、というのはWin32APIでってことか?
HeapAlloc

835 名前:デフォルトの名無しさん :04/08/22 18:35
malloc使えばいいじゃん

836 名前:デフォルトの名無しさん :04/08/22 18:38
コーディング作業を一切行わないでプログラムが作れるVC++ってないですか?

837 名前:デフォルトの名無しさん :04/08/22 18:41
>>835
ウルセーバカ

838 名前:デフォルトの名無しさん :04/08/22 19:27
>>836
プログラマを雇う
金はかかるが

839 名前:デフォルトの名無しさん :04/08/22 19:31
サンプルをビルド

840 名前:デフォルトの名無しさん :04/08/22 19:51
プログラマなんて安いよ
所詮肉体労働者じゃん

時間7,8000円も出せば楽勝だよ

841 名前:デフォルトの名無しさん :04/08/22 20:16
ココで、僕は何を言うべきですか。

842 名前:デフォルトの名無しさん :04/08/22 20:41
プログラマが肉体労働だとしたら、
すべての職業が肉体労働になるかと。

大学で教鞭とってる教授も肉体労働になるだろうし、
研究職にしても、結局ほぼ同じ事を繰り返してるという意味では肉体労働。
銀行も証券会社も肉体労働。

843 名前:デフォルトの名無しさん :04/08/22 20:49
VisualC++を勉強するつもりなんてまったくないんだけどさ、

VC6.0っていうかwin32でGUI部分を設計するときってどんな感じなの?
VBみたいにボタン配置したり出来ないんでしょ?
Javaみたいにawtみたいなものがあるのかな?

844 名前:デフォルトの名無しさん :04/08/22 20:50
>>842
大学の教授とプログラマとではまるで違うよ…

845 名前:デフォルトの名無しさん :04/08/22 20:53
>>843
VBとおなじ

846 名前:デフォルトの名無しさん :04/08/22 20:54
>>844

>大学の教授とプログラマとではまるで違うよ…

知的レベルは全然違うが、どっちも肉体労働w

847 名前:デフォルトの名無しさん :04/08/22 21:00
>>845
え!?うそ!?
それって.NETアプリだけじゃないの?

848 名前:デフォルトの名無しさん :04/08/22 21:03
>>847
ダイアログベースなら同じですよ

849 名前:デフォルトの名無しさん :04/08/22 22:09
なんというか純粋な頭脳労働って、今の社会に存在しないだろ。

俺らがこうやってキーボードをカタカタいわせてコーディングしてることすら
未来人から見れば「何頑張っちゃってるの?こんなの(中略)で一発ジャン」
となる。

VC++スレなので、ここまででやめときます。
というか、どっかいいスレないかな?マ板?

850 名前:デフォルトの名無しさん :04/08/22 22:19
>>847
確かにダイアログベースなら似たような感じで出来きない事もないけど。
でも、VBと比べるとデザイン時で出来ない事が多い。
要するに、自分でコードをゴリゴリ書いて開発して行くスタイルなので、VBと比べるとかなり面倒だと思いますよ。

まぁ、VB云々以前に、MFCを使うならWin32APIの知識とC++の知識が無いと手も足も出ないような気が…

851 名前:デフォルトの名無しさん :04/08/22 22:21
>ダイアログベースなら同じですよ
JARO逝ったほうがいい。

852 名前:デフォルトの名無しさん :04/08/22 22:27
Windowsキー + Eを、押しつづけたら error出て固まった

853 名前:デフォルトの名無しさん :04/08/22 22:28
>>851
VBと同じだという頭でやると、絶対挫折するわな。

854 名前:デフォルトの名無しさん :04/08/22 22:30
デザイン"だけなら"同じか。

855 名前:デフォルトの名無しさん :04/08/22 22:34
>>853
おまいだけ。
言語に不変の部分をきっちりマスターしていれば
VB,VC,BCBもどれも同じじゃん

856 名前:デフォルトの名無しさん :04/08/22 22:35
>>855
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
そういうことはここに書け。

857 名前:デフォルトの名無しさん :04/08/22 22:36
>>855
自分が何言ってるか分かってるか?
通して良く読んでみろ

858 名前:デフォルトの名無しさん :04/08/22 22:40
>>855
完全にロジックが破綻してますなw

859 名前:デフォルトの名無しさん :04/08/22 22:52
>>855
こういう香具師はどの開発環境もまともに使えてないんだろうな…

860 名前:デフォルトの名無しさん :04/08/22 23:36
おまえらそんなコトで熱くなるより
>825 >831
これにも回答くれ。

861 名前:デフォルトの名無しさん :04/08/22 23:41
BCBとPCBは全然違うけどなw

862 名前:デフォルトの名無しさん :04/08/22 23:43
>>860
unsigned char

863 名前:デフォルトの名無しさん :04/08/22 23:58
>>862
unsigned char = BYTE
ダメ

(WORD)((BYTE)val)なんつー回りくどいことやってウォッチ登録するしかないのでしょうか?

864 名前:デフォルトの名無しさん :04/08/23 00:03
>>848,850
なるほど。サンクス!

865 名前:デフォルトの名無しさん :04/08/23 00:15
俺はVBってモンを全く触った事が無いんだがコントロールの配置とか
制御がダイアログエディタ+クラスウィザード+MFCより楽なん?

866 名前:デフォルトの名無しさん :04/08/23 00:17
コントロールの配置:同じ
制御:VBの方が楽

867 名前:デフォルトの名無しさん :04/08/23 00:20
>>863
unsigned char(BYTE)で-128なんて表示される様なVC++.NET 2002なんて
窓から捨ててしまえ!


868 名前:デフォルトの名無しさん :04/08/23 00:31
>>865
VBの方が視覚的に色々と設定出来る分、コーディング量が少なくてすむ。
VBのライブラリ?は、完全にAPIを隠蔽している感じなので、VC++(MFC)みたいにAPIの知識が乏しくても十分使える。

と、書くと なんか良い事尽くめに聞こえるけど
結局、システムの奥深い所をプログラミングするとなると
VBでもAPIを駆使する事になるので、凝った物を作るのならVC++を使った方が楽だと思う。

869 名前:デフォルトの名無しさん :04/08/23 00:34
char a[10];
strcpy(a,"まんこ");
で配列aの内容を見る場合のようなことを言ってるの?

それならウォッチタブで名前の所に
a,c
と入れる

MSDNの「ウォッチ変数の文字書式指定」を見て下さいです。


870 名前:デフォルトの名無しさん :04/08/23 00:44
今、ふと思ったんだけど、VBでリスト構造みたいな物を作る時ってどうやるの?
もしかして、それは無理??

871 名前:デフォルトの名無しさん :04/08/23 00:53
リスト構造みたいな物
->リスト構造のような物

872 名前:デフォルトの名無しさん :04/08/23 01:06
>>870
VBは良く知らんが昔のBasicは変数のアドレスを求める関数と
アドレス先の値を得る関数があった。
似たようなのがVBにも用意されてるんじゃない?

873 名前:デフォルトの名無しさん :04/08/23 01:25
>>869
見れました!感謝

874 名前:デフォルトの名無しさん :04/08/23 01:37
>>872
なるほど、そういう関数があるんでしょうね。>VB
というか、完全にスレ違いスマソ…

875 名前:デフォルトの名無しさん :04/08/23 02:58
>>868
要するにこういう事だろ。

VBの場合は直にVBから入っていけるが
VCの場合は C→C++→Win32API→MFC

という段階が必要な訳で明らかにVBよりは敷居が高いわな。

876 名前:デフォルトの名無しさん :04/08/23 03:13
どうでもいいよそんな役に立たない話。

877 名前:デフォルトの名無しさん :04/08/23 03:17
そこでBCBですよ!

と言おうと思ったけどマネージドでやるなら
もう十分なほどのRAD環境だよ

878 名前:デフォルトの名無しさん :04/08/23 03:45
>>877
でも、ネイティブが吐けるM$製BCB系ツールが欲しいのが本音。

879 名前:デフォルトの名無しさん :04/08/23 05:49
>>878
胴衣。MSが全身全霊を傾けて、詐欺や脅迫までして.netを宣伝したのに、結局ユーザーはついてこなかった。WinFXもどうなる事やら。

880 名前:デフォルトの名無しさん :04/08/23 05:52
それは漏れがついていくから大丈夫

881 名前:デフォルトの名無しさん :04/08/23 05:58
.netは後から入れる必要があったが、WinFXはLonghornに付いてくるのでついていくかどうかは問題にならない。
Windows95を買えばWin32になったのと同じ。

882 名前:デフォルトの名無しさん :04/08/23 06:27
Longhornはいつでまつか?

883 名前:デフォルトの名無しさん :04/08/23 09:43
質問です
VC++.netでスタティックライブラリを作っているんですが、
STLを使おうとするとエラーが出ます。具体的には、
#include <lisit>
using namespace std;
list<int> test;
とすると
error C2871: 'std' : この名前を持つ名前空間は存在しません。
error C2501: 'list' : 識別名を宣言するのに、型が指定されていません。
と出ます。なにかSTLを使うために特別な記述が必要なのでしょうか?

884 名前:デフォルトの名無しさん :04/08/23 09:47
>>883
>#include <lisit>

885 名前:デフォルトの名無しさん :04/08/23 13:19
C→C++→MFC→Win32API
orz

886 名前:デフォルトの名無しさん :04/08/23 13:35
>>885
俺はこうだ
C→C++→MFC→Win32API→MFC

暇があったらソース読んでみれば?

887 名前:デフォルトの名無しさん :04/08/23 14:14
ブレークポイントでブレークさせ、ステップ実行しているとVisualStudio毎応答なし
になることありませんか?このときタスクマネージャすら反応しないというような。
とくにメモリダンプ窓を表示させてたりaxレジスタとかをウオッチ表示させてたりすると。

VisualC++6.0 SP6@WinXP SP2


888 名前:デフォルトの名無しさん :04/08/23 14:25
XPのSP2なんて出ていたっけ?
SP1にしておけば?
http://support.microsoft.com/default.aspx?scid=kb;ja;418661&Product=vcJPN

889 名前:デフォルトの名無しさん :04/08/23 14:42
>>887
VC7にしろということだろうw

890 名前:デフォルトの名無しさん :04/08/23 15:26
VC7でもステップ実行してるとたまに固まるけどな

891 名前:デフォルトの名無しさん :04/08/23 15:41
実行時に、あるファイルのコピー・削除・移動をするには
どのようにすれば良いのですか?

892 名前:デフォルトの名無しさん :04/08/23 16:08
>>891
remove()とかrename()とか

893 名前:デフォルトの名無しさん :04/08/23 16:23
>>892
ありがとうございます

894 名前:デフォルトの名無しさん :04/08/23 16:52
>>891
ごみ箱行きならSHFileOperation

895 名前:891 :04/08/23 17:48
ゴミ箱行きもありがたく使わせてもらいました!


896 名前:デフォルトの名無しさん :04/08/23 20:15
俺は近々ごみ箱行き...
orz

897 名前:デフォルトの名無しさん :04/08/23 20:22
ブレークポイント貼っても止まらないで進んでしまうんですが、
なにかあるんでしょうか?
ちがうプロジェクト(DLL作成)では止まるのですが。

VisualC++4.0 WinXP SP1
MFCAppWizardダイヤログです

898 名前:デフォルトの名無しさん :04/08/23 20:59
単純にブレークまで行ってない
・・・んなわけないか

899 名前:デフォルトの名無しさん :04/08/23 21:21
>>887
スレッドとかタイマーとか頻繁に動かしてたりしない?
まあでもXPはなんだか止まりやすいな。2000にしと毛。

900 名前:デフォルトの名無しさん :04/08/23 21:35
>>899
うん。スレッド内部でブレークしてる。しかもそのスレッドからまたスレッドを作ったり。


901 名前:デフォルトの名無しさん :04/08/23 21:40
>>897
ソースコードとバイナリイメージがずれることがある。
この場合、ブレーク張った箇所は実際には存在してなかったりしてスルーしてるように見えることも。
リビルドしてみた?


902 名前:897 :04/08/23 22:28
>>901
リビルドもしてみたんですけど・・・

最初からプロジェクト作り直したほうがよさそうですかね

903 名前:デフォルトの名無しさん :04/08/23 22:36
当方、ただ今Susieプラグインを使ってソフトを作っております。
MFC上で作っているのですが、デバイスコンテキストを絡めて使うとどうしてもうまくいきません。
BitbltもAPI(つまりハンドルを指定して表示させる)の方を使うとうまく行くのですが、CDC::Bitbltを使うとだめです。現在のソースは…

spi_getpicture(tmp,0,0,&pHBbkInfo,&h_bkbm,NULL,0);

pBmpInfo = (BITMAPINFO *)LocalLock(pHBbkInfo);
hBm = (LPBYTE)LocalLock(h_bkbm);


CDC* dc = GetDC();
CDC MemDC;
CBitmap MemBitmap;
CBitmap* poldBmp;
HBITMAP myDIB;

MemDC.CreateCompatibleDC(dc);

myDIB = ::CreateDIBitmap(MemDC.GetSafeHdc(),
             &pBmpInfo->bmiHeader,CBM_INIT,
             hBm,pBmpInfo,DIB_RGB_COLORS);
MemBitmap.FromHandle(myDIB);
poldBmp = MemDC.SelectObject(&MemBitmap);

dc->BitBlt(0,0,pBmpInfo->bmiHeader.biWidth,
           pBmpInfo->bmiHeader.biHeight,&MemDC,0,0,SRCCOPY);


MemDC.SelectObject(poldBmp);

こんな感じです。これでなぜうまくいかないのかがさっぱり…どなたかご指導を…

904 名前:デフォルトの名無しさん :04/08/23 23:05
>>902
作ってるのはDLLとそれを使うMFCベースダイアログアプリ?


905 名前:デフォルトの名無しさん :04/08/23 23:08
VBスレで、そんなのVBで作るのは、やめとけ
といわれたので、ちょっとVC++スレに着てみました。

ちょっと質問なんですが
例えばチャットソフトを作ったとして、Pluginみたいな感じで
お絵かき機能とか追加してみたいんだけど、やっぱ、そういうのって無謀でしょうか?

よくPluginっていうと、DLLとかで、対応ファイルが増える
とか、そういう感じだと思うんだけど、機能まるごとの追加ができたらいいな、と。


906 名前:903 :04/08/23 23:09
すいません、自己解決しました。
お騒がせしましたm(__)m

907 名前:903,906 :04/08/23 23:37
すいません、やはりどうしても気になるので質問させて下さい。
先ほど自己解決したとカキコしましたが、先に示したソースの問題点は

MemBitmap.FromHandle(myDIB);

でした。これを
MemBitmap.Attach(myDIB);

とすることで解決しました。
しかしなぜFromHandleでは駄目なのかが今ひとつわかりません。
MSDNを見る限りむしろFromHandleを使う方が妥当とさえ思えます。両者の違いはどのへんにあるのでしょうか?

908 名前:デフォルトの名無しさん :04/08/23 23:43
>>905
できないことは無いけど、最初に想定した範囲のことしか
DLLにやらせられないと思う。
たとえばDLLでお絵かき機能を付けるとすると、マウスでの入力(標準的なのだとMessageか)や
絵の表示先(オーナーウィンドウのハンドル)などをDLL側に通知、またはDLL側でそれらを
取得できないといけないでしょ。

絵だけじゃなく本当にいろんなことをプラグインでできるようにするには、
DLLとのインターフェースを相当考えないといけないでしょう。

909 名前:デフォルトの名無しさん :04/08/23 23:51
VC6のウィンドウの並びで、
○□□□
○□□□
△△△△

○□□□
○□□□
○△△△
にしたいのですが、できるならやり方を教えてください。
マークは、○がワークスペース、□がコード書き場、△がエラー表示域です。

910 名前:デフォルトの名無しさん :04/08/23 23:51
>>907
FromHandleはstaticなメンバ関数なので
MemBitmap.FromHandle(myDIB);
はMemBitmapに対する操作ではない。

FromHandleは新しい一時オブジェクトを作り、ハンドルを結び付けて返す。
一時オブジェクトに結び付けられたハンドルは自動的に解放されないので
自分で後始末する必要がある。

911 名前:デフォルトの名無しさん :04/08/23 23:53
>>907
あと、今度解決方法を書かずに去ろうとしたら後ろの穴を犯す。

912 名前:デフォルトの名無しさん :04/08/24 00:21
>>908
なるほど、やっぱり厳しいんですね〜
どもども、ありがとうございました

913 名前:デフォルトの名無しさん :04/08/24 00:56
>>909
それが可能かどうかは知らんが
みんなワークスペースウィンドウとかドッキングさせていつも使ってんの?
自分は、ワークスペースは非ドッキングで、右下の方に置いてる。
で、普段は常に非表示で必要な時だけ表示させて使ってるんだが。

個人的にコードが画面いっぱいに表示されてないと気に食わないんだよねぇ。

914 名前:デフォルトの名無しさん :04/08/24 00:57
>>911
むしろ犯して欲しい。

915 名前:デフォルトの名無しさん :04/08/24 01:13
Alt + Shift + Enter でいいじゃん

916 名前:909 :04/08/24 01:38
>>913
ありがとうございます。
そういう事ができるのは知りませんでした。やってみます。

今までは、VCをフルスクリーンにしないで左側を縮めて、
空いた位置に、フォルダウィンドウの細くしたのを置いて代用していました。

>個人的にコードが画面いっぱいに表示されてないと気に食わないんだよねぇ。
自分もそうでしたが、あると、ダブルクリック一つでファイルを開けて便利で。

917 名前:デフォルトの名無しさん :04/08/24 04:59
>>911 どうぞ。
or2

918 名前:デフォルトの名無しさん :04/08/24 12:26
自分は最近はこんな感じに落ち着いている
ディスプレーがせまいからこれが現在ではベスト
△△△△
□□□○
□□□○
□□□○

919 名前:デフォルトの名無しさん :04/08/24 14:13
>>917
良い尻してますね

920 名前:デフォルトの名無しさん :04/08/24 17:45
orつ


921 名前:デフォルトの名無しさん :04/08/24 18:10
(:D)~~~~~~|)__


922 名前:デフォルトの名無しさん :04/08/24 20:30
お邪魔します。
WAVEファイルを使って音を鳴らしたいのですが、
c:\sdk\include\dsound.h(305) : error C2146: 構文エラー : ';' が、識別子 'dwReserved1' の前に必要です。
c:\sdk\include\dsound.h(305) : error C2501: 'DWORD_PTR' : 識別名を宣言するのに、型が指定されていません。
c:\sdk\include\dsound.h(305) : error C2501: 'dwReserved1' : 識別名を宣言するのに、型が指定されていません。
c:\sdk\include\dsound.h(306) : error C2146: 構文エラー : ';' が、識別子 'dwReserved2' の前に必要です。
c:\sdk\include\dsound.h(306) : error C2501: 'DWORD_PTR' : 識別名を宣言するのに、型が指定されていません。
c:\sdk\include\dsound.h(306) : error C2501: 'dwReserved2' : 識別名を宣言するのに、型が指定されていません。
というエラーが出てしまってコンパイルできません。
dsound.h に問題があるようなんですけど、どうすればいいのか全然分かりません・・・
どなたか解決法を教えていただけませんでしょうか? どうかよろしくお願いします。

923 名前:デフォルトの名無しさん :04/08/24 20:34
DWORD_PTRって型が何処にも宣言されてないんじゃない?

924 名前:デフォルトの名無しさん :04/08/24 20:43
どのように宣言すればよいのでしょうか?
すいません、初心者なので全然分からないんです・・・(汗

925 名前:デフォルトの名無しさん :04/08/24 20:45
typedef DWORD* DWORD_PTR;

926 名前:デフォルトの名無しさん :04/08/24 20:51
これの絡みかな?読んでみ?

ttp://www.doblog.com/weblog/myblog/17039/381620#381620

927 名前:デフォルトの名無しさん :04/08/24 20:51
>>925は嫌がらせ

928 名前:デフォルトの名無しさん :04/08/24 20:54
>>922
DSOUND.Hの前にMMREG.Hをincludeする必要があるが、読ませてる?


929 名前:デフォルトの名無しさん :04/08/24 20:55
>>927
テヘッ

930 名前:デフォルトの名無しさん :04/08/24 20:56
返信ありがとうございます。
エラーが出た dsound.h 内に入れたのですが、なぜか反映されずに同じエラーが出てしまいます。
どの位置で宣言するのが正しいのでしょうか?
お手数かけて申し訳ないです(汗

931 名前:デフォルトの名無しさん :04/08/24 20:58
あ、違うんですね・・・(汗
>>925
見てみます。
>>926

932 名前:デフォルトの名無しさん :04/08/24 21:01
サーバーが混雑していて今見れないようです(汗
もう少ししてから見てみますね。
>>926
ちょっと調べます。
>>928

933 名前:デフォルトの名無しさん :04/08/24 21:02
ちょっと重いだけだろ
すぐ見れる

934 名前:デフォルトの名無しさん :04/08/24 21:05
VBで作成したTest.dllというActiveXDllの、strResult=TestM(strA,strB)という関数
をVCから呼出すプログラムを作ったのですが、うまくいきません。
まだ勉強をはじめたばかりで全然ダメだと思いますが、どこが悪いのかご教授願えな
いでしょうか?
どうかお願い致します。

#include <stdio.h>
#import "test.dll" // タイプライブラリ

using namespace TestM;

int main(void)
{
_TestM_Cls *pClass1;

if(SUCCEEDED(::CoInitialize(NULL)))
{
{
_Class1Ptr pClass1(__uuidof(TestM_Cls));

935 名前:デフォルトの名無しさん :04/08/24 21:08
あああ! 正しくこれです(汗
書いてある通りにやってみます。
皆さんありがとうございました(多謝

936 名前:デフォルトの名無しさん :04/08/24 21:12

 

937 名前:デフォルトの名無しさん :04/08/24 21:13


938 名前:デフォルトの名無しさん :04/08/24 21:20
すみません。VC++2003の、パスの設定がうまくいきません。
ここで質問してもいいですか?


939 名前:デフォルトの名無しさん :04/08/24 21:22
ツール→オプション→プロジェクト→VC++ ディレクトリ

940 名前:938 :04/08/24 21:36
ありがとうございました

941 名前:デフォルトの名無しさん :04/08/24 22:02
すいません、先ほどお世話になった者なのですが、
「DirectX9.0cをVisualC++6.0使用してコンパイルする場合、PlatformSDKが必須」
という事なのでPlatformSDKを検索したのですが・・・
いまいちPlatformSDKとは何か、が分かりません(汗
SDKの集合体の事を指しているのでしょうか・・・?
どなたか詳しい方いらっしゃったら教えてください。お願いします。

942 名前:デフォルトの名無しさん :04/08/24 22:14
>>941
とりあえずググってみろや

943 名前:デフォルトの名無しさん :04/08/24 22:21
検索はGoogleで一通りしたのですが、分からなかったので・・・(汗
PlatformSDKの内のどれかが必要、ということなのでしょうか・・・
もうちょっと調べてみます・・・

944 名前:デフォルトの名無しさん :04/08/24 22:22
>>943
いいからググれって

945 名前:デフォルトの名無しさん :04/08/24 22:24
PlatformSDKはWindowsのAPIのライブラリ集です。時々アップデート
されているので、Visual C++には収録されてないAPIもあります。
ヘッダとかdllとかたくさん付いてます。
DirectXとかMedia Playerみたいなものは独立したSDKとして公開されてます。
つまり、「DirectX9.0cをVisualC++6.0使用してコンパイルする場合、PlatformSDKが必須」
ということは、PlatformSDKに含まれているライブラリを使うからDirectXのSDKの他に
Platform SDKもインストールせよ、ということでしょう。
Platform SDKそのものは
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
から入手できます。Core SDKというのが基本的なものなので
まずはこれをインストールしましょう。
尚、インストールはIE以外のブラウザから行なうのは大変なので
IEを使って下さい。
以上の説明で間違っていたら責任は950が取ります。

946 名前:デフォルトの名無しさん :04/08/24 22:41
つーかWAV再生したいだけならDX使わなくてもMCIデバイス関係のAPIを
使えば楽なんじゃないかね?

947 名前:デフォルトの名無しさん :04/08/24 22:42
ネットインストールよりFull Downloadしてからの方がいいと思うよ。

948 名前:デフォルトの名無しさん :04/08/24 23:16
試しに、winプログラムをコンパイルしてみたんですが、includeファイルが
開けないんです


949 名前:デフォルトの名無しさん :04/08/24 23:21
ちなみに「システム変数」は、今こんな感じなんです。

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32
\Wbem;C:\Program Files\pcdNavi\bin;C:\Program Files\Fujitsu
\sa\dll;;C:\Program Files\Sonic\MyDVD;;C:\Program Files\WideStudio
\ws\bin;C:\Program Files\WideStudio\ruby\bin;C:\Program Files\WideStudio
\Perl\bin;;C:\Program Files\WideStudio\Python;C:\Program Files\WideStudio\gcc\bin;
c:\Borland\Bcc55\bin;c:\Borland\Bcc55\bin;c:\Borland\Bcc55\bin;D:\Program Files\Microsoft SDK
\Bin\.;D:\Program Files\Microsoft SDK\Bin\WinNT\.SET PATH=D:\Program Files\Microsoft Visual C++ Toolkit 2003
\bin;D:\Program Files\Microsoft SDK\Bin;D:\Program Files\Microsoft SDK\Bin\Win64;%PATH%

950 名前:デフォルトの名無しさん :04/08/24 23:26
設定をやりだして、まだ、完全にできないでいます


951 名前:デフォルトの名無しさん :04/08/24 23:29
>>949
やたらと処理系を入れる前に「環境変数の設定方法」から再勉強しましょう。

952 名前:デフォルトの名無しさん :04/08/25 04:39
あのくだらない質問かもしれませんが
VisualC++のSP1とかSP2とかって入れないと何かマズイ事があるんでしょうか?
また、SPでどの様な事が改善されているのでしょうか?

953 名前:デフォルトの名無しさん :04/08/25 04:41
非常jにまずい
今すぐ入れろ

954 名前:デフォルトの名無しさん :04/08/25 05:05
SP6を入れるとProcessor Packが使えなくなるらしい。

955 名前:952 :04/08/25 05:18
はい!今すぐ入れます!!
あわわ…

956 名前:デフォルトの名無しさん :04/08/25 05:25
>>945のPlatformSDKもいれとけYo!

957 名前:952 :04/08/25 05:32
>>956
レスどうも! PlatformSDKに関しては、以前必要になった事があるのでインストール済みです。
SPもあててないVC++で作ったソフトを公開している自分は逝ってよしですか?

958 名前:デフォルトの名無しさん :04/08/25 05:59
別に
VC6の時点でたかが知れてるし

959 名前:デフォルトの名無しさん :04/08/25 09:13
>>958
そういうあなた様は、何をお使いで?w

960 名前:デフォルトの名無しさん :04/08/25 10:35
F-BASIC386です

961 名前:デフォルトの名無しさん :04/08/25 14:28
Visual C++ 6.0です。
長くなってしまうので、ソースコードは簡単に書きます。

(i)外部信号を取り込んで、連続的に描画を行いたい。
(ii)取り込みを実行した1固定時間の静止画像を描くことはできた
(iii)取り込み〜描画の一連の命令をループで囲んでも、ループを抜けた状態の静止画像のみ描画される
(iv)ループの繰り返し毎にMessageBoxを出すようにすると、Boxが出る毎にその時の静止画像が描かれる
  つまり、MessageBoxを消していくことで、連続的に描画を行うことができる

(ii)
takein(); //信号取り込み
Draw(); //デバイスコンテキストの初期化+信号の描画
InvalidateRect(hwnd, NULL, FALSE); //WM_PAINTを呼び出す

(iii)
for(i=0; i<10; i++){
 takein(); //信号取り込み
 Draw(); //デバイスコンテキストの初期化+信号の描画
 InvalidateRect(hwnd, NULL, FALSE); //WM_PAINTを呼び出す
}

(iv)
for(i=0; i<10; i++){
 takein(); //信号取り込み
 Draw(); //デバイスコンテキストの初期化+信号の描画
 InvalidateRect(hwnd, NULL, FALSE); //WM_PAINTを呼び出す
 MessageBox(hwnd, "連続描画途中です", "報告", MB_OK);
}

MessageBoxを出すこと無しに、連続的に描画をするにはどうしたらよいのでしょうか?
よろしくお願いします。

962 名前:デフォルトの名無しさん :04/08/25 14:49
>>961
すまん、最近目が悪いみたいで・・・。

963 名前:デフォルトの名無しさん :04/08/25 14:54
>>961
面倒だからMessageBox->Sleep(1000)


964 名前:962 :04/08/25 14:56
>>961
takein()関数 がどういうモノかわからないけど、
forループの中に Sleep() 関数を入れてカーネルを回してみるとか?


965 名前:デフォルトの名無しさん :04/08/25 15:10
質問で
印刷するプログラムで、プリンタの設定でデフォルトで
用紙の向きを横向きに設定するプログラムを作成したのですが
印刷をすると横向きになっていますが途中で印刷内容が切れてしまいます。

ソースを貼りますので、ご教授の方よろしくお願いします。
↓こうしています

void prdlg::Onprint()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CPrintDialog dlg(FALSE,PD_ALLPAGES,this);
CDC pDC;
HDC hd;
DOCINFO p;
TEXTMETRIC tm;

if(dlg.DoModal() == IDOK)
{
DEVMODE *devmode;
devmode = dlg.GetDevMode();
devmode->dmOrientation = DMORIENT_LANDSCAPE;
devmode->dmFields = DM_ORIENTATION;

hd=dlg.GetPrinterDC();
pDC.CreateDC (dlg.GetDriverName(),dlg.GetDeviceName(),dlg.GetPortName(),devmode);




環境はVC++,Windows98です。
よろしくお願いします。

966 名前:961 :04/08/25 15:17
>>963-964
レスありがとうございます。
しかし、駄目でした。やはりループを抜けた状態の1画像しか描画されませんでした。

なお、以下のような現象が確認されました。
for(;;){
 takein();
 draw1();
 InvalidateRect(hwnd, NULL, FALSE);
 MessageBox( , , );
 draw2();
 InvalidateRect( , , );
}
としてみたところ(draw1, draw2共に連続情報を持つ)、MessageBoxが出るときに
更新される画像はdraw1()で描画されるもののみで、draw2()で描画される画像は、
ループを抜けたあとの1画像のみでした(それまでは描画されない)。

Sleep()関数を用いても、ループを抜けるまでの時間が長くなっただけでした…。

967 名前:961 :04/08/25 15:19
>draw1, draw2共に連続情報を持つ
って意味わかりませんね。
draw1, draw2は共に、takein()関数によって更新された情報を描く関数です。

968 名前:デフォルトの名無しさん :04/08/25 15:26
ループ中に描画するのではなく、
WM_PAINT で描画するようにしてみる。

969 名前:デフォルトの名無しさん :04/08/25 15:43
for(;;){
 takein();
 draw();
 InvalidateRect(hwnd, NULL, FALSE);
 UpdateWindow(hwnd);
 Sleep(1000);
}

970 名前:961 :04/08/25 16:30
>>968
う〜ん、駄目でした。

>>969
その方法で出来ました…。
UpdateWindowについて調べてみたところ、「ウィンドウのクライアント領域を更新」
と説明がありました。この関数を使うことで、クライアント領域が更新されて描画さ
れることは納得がいくのですが、このUpdateWindow関数を書かなくても最後の1状態
は描画されていたことに納得がいきません。

どこかで命令文無しにクライアント領域が更新されているのでしょうか?

971 名前:デフォルトの名無しさん :04/08/25 17:18
>>970
最後の一状態だけ表示されるってのは、
問題の関数を抜けたらメッセージループでWM_PAINTが発行されるから。
UpdateWindowは、メッセージループを介さずに直接WM_PAINTを発行するから、
その場で更新される。

UpdateWindowのところを
MSG msg;
GetMessage(&msg, hwnd, WM_PAINT, WM_PAINT);
DispatchMessage(&msg);
と変えてみても更新されると思う。

972 名前:デフォルトの名無しさん :04/08/26 08:24
MFCはいつまでサポートされるんだろうか。

973 名前:デフォルトの名無しさん :04/08/26 08:54
>>972
終了してますが?

974 名前:デフォルトの名無しさん :04/08/26 08:55
>>973
へ?.NETでもMFCはあるのじゃ?

975 名前:973 :04/08/26 09:05
すいません
「何か?」
をつけるの忘れてましたw

976 名前:デフォルトの名無しさん :04/08/26 09:39
MFCってもうバージョンは上がらんのだろうか?
新しいコントロールとか追加されてもMFCからはもう使えんのか・・

977 名前:デフォルトの名無しさん :04/08/26 09:43
MFCもDelphiみたいにコントロールが豊富に提供されてれば、
もっと好かれたかも知れないな・・・

978 名前:デフォルトの名無しさん :04/08/26 09:47
>>977
MFCがDelphiよりもユーザが多いということは、MFCの方が好かれているということです。

979 名前:デフォルトの名無しさん :04/08/26 09:54
MFCマンセー

980 名前:デフォルトの名無しさん :04/08/26 10:00
Microsoft Foundation Class

981 名前:デフォルトの名無しさん :04/08/26 10:30
Microsoft Frustration Class

982 名前:デフォルトの名無しさん :04/08/26 15:06
SDKでプログラミングをしています(visual c++ 6)。
マルチスレッドについて勉強をしているのですが、そもそもスレッドとは何かが良く分かりません。
猫でもわかるプログラミングのページ(ttp://www.kumei.ne.jp/c_lang/sdk/sdk_87.htm)を参照
すると、親ウィンドウの中に子ウィンドウが作られています。
マルチスレッドとは、このように親ウィンドウの中に子ウィンドウを作るものなのでしょうか?

私が今やりたいことは、「親ウィンドウ内のある特定領域に、独立な領域を作る」ことです。
独立な領域とは、閉じるボタンやウィンドウアイコンがある、いわゆるwindowではなく、一見
すると領域は1つに見える・・・というものなのですが、分かりますでしょうか?

理解できる方がおりましたら、ご解答よろしくお願いします。実現可能なのでしょうか?

983 名前:デフォルトの名無しさん :04/08/26 15:38
>>982
http://www.google.co.jp/search?&hl=ja&ie=UTF-8&q=%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9+%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89

984 名前:デフォルトの名無しさん :04/08/26 15:40
>>982
> 私が今やりたいことは、「親ウィンドウ内のある特定領域に、独立な領域を作る」ことです。
> 独立な領域とは、閉じるボタンやウィンドウアイコンがある、いわゆるwindowではなく、一見
> すると領域は1つに見える・・・というものなのですが、分かりますでしょうか?

スレッドはgoogleの方見れば良いけど、全然理解が間違ってる。
後の方はMDIのこと?そうじゃないとしたら実例としてどういうソフトがあるのか
どこでそういうインタフェースを見たのかを書いた方が良い。見たこともないもの
だとしたら不可能なものである確率が高い。

985 名前:デフォルトの名無しさん :04/08/26 17:59
なんとなく、htmlのiframeみたいなものを想像しているのだろうかと思ってみたり。

986 名前:デフォルトの名無しさん :04/08/26 18:22
枠を消したダイアログを貼り付ければいいのか?

987 名前:デフォルトの名無しさん :04/08/26 21:03
「独立」っていうのが何を意味するのかね?スレッドのことに触れてるけど、実際のところ
処理の独立性という問題より見た目の問題が表に出ているように取れる文章なんだが。
ウィンドウじゃないっていうところからすると、コントロール貼っただけでもそう言えるような
感じ。わけわかんない。

988 名前:デフォルトの名無しさん :04/08/26 22:05
まあ多分本人も自分で何言ってるのかがわからんのじゃないかな。
伝えたい事はあるんだけどどう言う表現を使ったら良いか分からないみたいな。

989 名前:デフォルトの名無しさん :04/08/27 09:49
で、次スレまだ?


■過去ログ置き場に戻る■ 1- 前250 最新50
DAT2HTML 0.33f Converted.