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


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

★初心者にVisual C++を教えるスレ★ Part8
751 名前:デフォルトの名無しさん :03/11/06 20:34
おべんきょ、がんばってな。
http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&q=int+short+char+%92l%82%CC%94%CD%88%CD&lr=lang_ja

752 名前:デフォルトの名無しさん :03/11/06 20:36
>>749は割れざ。

753 名前:printf :03/11/06 20:50
もういいもういい、もうそんなに型変換しなくていいよ。
サイズ足りないんだろ。オーバーフローしちゃうからいいよ。
だからそんなに入らないって。
おい、もういいっていってんのに。値を表示するからくれよ。ほら。
なんでcharにするんだよ。charにしなくていいって。charにするなよ。
入らねえよ、大き過ぎだって。charにするなって。よこせよほら。
おい、おい、なんでまだcharにするんだよ。すごいことなってるって。
何バイトだそれ。やめろって。入るかって。
聞いてんのかよcharにするなって。なんでcharにするの。やめろよ、やめろって。
誰が表示するんだよその値を。もういいから。いいからさ。
おい、ほんとに入らないって。つーか聞いてんの。ねえ。
もうやめて、charにしないで。やめてって。charにしなくていいって。
やめろって。おいやめろよ。やめろ、charにするのやめろ。charにするな。charにするな。
おまえ何してんだよ。charにするとかcharにしないとかの話じゃなくて何やってんだって。
おい、ほんとなにしてんだよ、入り切れてないって。オーバーフローしてるって。
もうやめろよ。やめろよ。やーめーろーよ。

754 名前:デフォルトの名無しさん :03/11/07 07:52
>>753
どこを縦読みするんだ?

755 名前:デフォルトの名無しさん :03/11/07 08:10
>>753
もういい,の改変コピペか.
>>749への回答になっててわろた.

756 名前:デフォルトの名無しさん :03/11/07 10:13
現在Visual C++ 6.0を持ってるんですが、コンソールアプリ(数値計算)
しか開発してませんでした。

これからWindowsプログラミングもやろっかなーとか思ってるんですが、
今からやるんなら.NETに移行して勉強した方がいいんでしょうか?

何冊か6.0の本があって、こいつらが無駄になりそうで勿体無い感じがしますが、
.NETが「完全に」6.0の上位互換なら移行してもいいかなと。

識者の方、アドバイスを頂けないでしょうか?

757 名前:デフォルトの名無しさん :03/11/07 15:51
>>756
インターフェイスはかなり変わってる。
本を無駄にしたく無いなら移行しないほうがいい。
労力を無駄にしたく無いならWin32なんかやらずに.NETやったほうがいい。

758 名前:756 :03/11/07 16:37
>>757
お返事ありがとうございます。

うーん、本はちょっぴり勿体無いけど、労力には代えられないですね。
将来性とかも考えて、.NETを勉強してみることにします。
アドバイスありがとうございました!

759 名前:デフォルトの名無しさん :03/11/07 18:30
>>758
Visual C++ 6.0も使いこなしてないくせにNETに移行しようとしてんじゃねーよ!
金の無駄だろ?

760 名前:デフォルトの名無しさん :03/11/07 18:42
.net使ってますが、最近実行ファイルが作れません。
以前は大丈夫だったのに、ビルドするときに
「プリコンパイル済みヘッダーの検索中に予期しないEOFを検出しました」
とエラーに表示され実行ファイルが作成されません。どうしたらよいでしょうか?

761 名前:デフォルトの名無しさん :03/11/07 19:25
VC++.NET 2002を使って、
struct hanage_tag {
// :
    hanage_tag() { /* ... default construction */ }
};
ってな構造体のオブジェクトを
hanage_tag* hanage = new hanage_tag();
って確保してたんです。

で、最近 VC++.NET 2003を導入したんですが、同じコードをコンパイルすると
warning C4345: 動作変更 : 形式 () の初期化子で構築される POD 型のオブジェクトは既定初期化されます。
なんて言われるようになっちゃったんですね。

....え? VC++.NET 2002では、デフォルトコンストラクタが呼ばれていなかったのかよ!
ってな感じで、かなり戦慄してしまいました。
そこで、知りたいことが二つあります。

1. VC++.NET 2002 でも VC++.NET 2003でも、
    hanage_tagのデフォルトコンストラクタを呼ぶにはどうすればいいですか?

2. というか、とりあえずこのワーニング、抑止できないですかねぇ。




>>760
プロジェクト内にある全部の .cpp ファイルの先頭に #include "stdafx.h" ってかくか、
プロジェクトのプロパティで「プリコンパイル済みヘッダを自動的に作成する」を選びなさい。

762 名前:760 :03/11/07 19:36
どうもです!

763 名前:デフォルトの名無しさん :03/11/07 20:29
>>761
new hanage_tag;

#pragma

764 名前:761 :03/11/07 20:43
>>763
ヒャッホウ
タスカリーーー!

765 名前:デフォルトの名無しさん :03/11/07 20:44
>>760
Debugフォルダ内のファイルをすべて消して再コンパイル。

766 名前:758 :03/11/07 22:33
>>759
すみません、、、

でも、仕事でVBも使用するハメになって、そちらも覚えなきゃならんのですが、
今はver.6が手に入らんから.NET買うしかないんですよ。なんで、いっそVCの方も、と。。
ヘタレでごめんなさい

767 名前:デフォルトの名無しさん :03/11/08 13:08
MFCAppWizardで作ったスケルトンのリソースの
ツールバーとかのアイコンとか削除したとき、
それに対応していた無駄なコードが残ってしまう気がするのですが
それらも勝手に削除されているのですか?

768 名前:デフォルトの名無しさん :03/11/08 13:58
>>767
んなわけねーだろ。

769 名前:デフォルトの名無しさん :03/11/08 14:39
>>767
んなこたーない。

770 名前:デフォルトの名無しさん :03/11/08 15:15
>>767
プッ

771 名前:デフォルトの名無しさん :03/11/08 17:17
>>767
それができるのはDelphiだけ
Delphiまんせー

772 名前:デフォルトの名無しさん :03/11/08 17:35
>>771
またDelphi房か( ´,_ゝ`)プッ

773 名前:デフォルトの名無しさん :03/11/08 18:50
>>772
VCでできるもんならやってみろ
それ*だけ*のために相当数の客を逃してるぞ( ´,_ゝ`)プッ

774 名前:デフォルトの名無しさん :03/11/08 19:00
おい、こんなところにも出張厨がいるのか!おめでてーな。

775 名前:デフォルトの名無しさん :03/11/08 20:14
Delってリソース削除しただけでコードまで消えるのか・・・?
怖くて使えねーな・・・

776 名前:デフォルトの名無しさん :03/11/08 21:01
だからdelなのか

777 名前:デフォルトの名無しさん :03/11/08 21:29
他スレで聞いたのですが、一応こちらでも質問させて下さい。

ユーザーが100個の数値データを入力するのですが、出来るだけ簡単な方法無いでしょうか?
自分が考えたのは

@エディットボックスを100個作りそこからプログラムがデータを取得する。
Aテキスト形式である一定の規則(データとデータの間にスペースを入れる等)でユーザーが入力して
それをファイルメニューなどから読み込ませる。

ぐらいしか思いつきません。@は作る方も面倒なので今のところAが有力なんですが
何かいいアドバイス下さい。

778 名前:デフォルトの名無しさん :03/11/08 21:33
>>777
マルチ氏ね。
両方出来るようにしたらいいじゃん。

779 名前:デフォルトの名無しさん :03/11/08 21:35
>>777
ファイルを読ませるなら、CSV形式とかがいいんじゃない?
入力・加工がExcel上で楽にできるでしょ。

780 名前:デフォルトの名無しさん :03/11/08 21:44
質問します。
ダイアログボックスのクラスが、
C○○DocumentくらすやC○○Viewクラスの変数を取得するには
どうしたら良いのですか?

781 名前:デフォルトの名無しさん :03/11/08 21:49
変数を渡せばいいんじゃないの?

782 名前:デフォルトの名無しさん :03/11/08 21:58
>>779
そうですね。テキスト形式ならその方が良いかも。
俺のプログラムの完成はまだまだ・・・先

783 名前:デフォルトの名無しさん :03/11/08 22:15
Cで、WAVEを扱いたいです。
apiを利用する必要があるそうですが、
どういう手順でソースの入力画面まで設定していったらいいのでしょうか?

784 名前:783 :03/11/08 22:16
環境はvc6のスタンダードです。お願いします。

785 名前:デフォルトの名無しさん :03/11/08 22:21
>>783
スゲー質問だな。

作りたいアプリによって違うが、MFCかWin32コンソールを選んで、
「次へ」を押してけばいいんじゃないの。

完成させることは100%無理だと思うけど。

786 名前:783 :03/11/08 22:36
>>785
どうすれば完成できるでしょうか?
とりあえず
ttp://www.aa.wakwak.com/~dragoon/wave.htm
にあるようなソースを動かして学習したいです。
普通にやってもエラーになるので・・・。
そのための設定を作りたいのです。

787 名前:デフォルトの名無しさん :03/11/08 22:44
>>780
DoModalで呼び出してるなら、ClassWizardからDoModalを追加し、
intを渡す例 → virtual int DoModal(int IntParam);
などとオーバーライドして渡すとか。


788 名前:780 :03/11/08 22:54
>>781
>>787
レスどうもです。
ダイアログボックスが作られたときに、
中にエディットボックス内にC○○Documentなどの変数が
表示されている感じにしたいです。
DoModalをオーバーライドして渡すんですか。

あとIDOKのボタンが押されたときどんな処理をしてるか、
CDialogのソースを見ようとしたのですが
どこにあるのか分かりません。

789 名前:デフォルトの名無しさん :03/11/08 23:00
>>788
IDOKのソースを見てなんか意味あるの?
動きを変えたければ、自分でボタンの動作を書けばいいし。


790 名前:788 :03/11/08 23:09
>>789
ただ単純に、IDOKと同じ機能を持つ、別IDのボタンとか作りたいと思いました。
意味無いですけど。
あと自分はIDCANCELとIDOKの機能の差もよく分かってません。

791 名前:デフォルトの名無しさん :03/11/08 23:13
>>790
OnOKで返せば良い。

IDCANCELとIDOKの違いは、プログラマが決める。

792 名前:788 :03/11/08 23:20
>>791
デフォルトではIDOKもIDCANCELのハンドラも
ただEndDialogを実行しているだけなのですか?

793 名前:788 :03/11/09 00:01
あ〜なんか駄目です。
ダイアログボックスが表示されたときに
C○○Documentのint型の変数を
エディットボックスに表示しようと思って頑張ったのですが、
なんか変な値が出てしまいます。

794 名前:デフォルトの名無しさん :03/11/09 00:07
CHogeDlg dlg;
dlg.m_int_a = pDoc->m_nA;

if(dlg.DoModal() == IDOK){
  pDoc->m_nA = dlg.m_int_a;
}


795 名前:783 :03/11/09 00:09
どうぞ救いの手をお願いします(つД`)

796 名前:デフォルトの名無しさん :03/11/09 00:13
>>795
http://www.kumei.ne.jp/c_lang/ で勉強すること。

797 名前:デフォルトの名無しさん :03/11/09 00:16
>>793
MFC勉強する前に質問の仕方を勉強汁。

798 名前:788 :03/11/09 00:16
>>794
どうもありがとうございます。
なんか狂ったことやってました・・・

799 名前:788 :03/11/09 00:18
>>797
はい、頑張ります

800 名前:デフォルトの名無しさん :03/11/09 00:24
>>1に質問の仕方書いてあるんだけどな

801 名前:デフォルトの名無しさん :03/11/09 00:25
>>798
もう説明がめんどいので・・・
intが渡せたのなら、ダイアログのクラスにC○○Document*形の
変数を作ってC○○Documentのthisを渡せば?
(怒られるかな・・・)

802 名前:デフォルトの名無しさん :03/11/09 00:36
自分が作っているMFCアプリケーションに欠陥があることに
気がつきました。開発はVC.NETで行っています。

まず自分のアプリケーションの画面ウインドウ(DirectXで初期化された
CChildViewを使用)に、他のアプリケーションを重ねます。
その状態で他のアプリケーションをタスクバーのクリックによって
縮小状態に変えます。
するとそこでフリーズしてしまいます。

フリーズ時に出現するダイアログで「デッバグ」を選択したところ、
wincore.cpp の中の

void CWnd::GetWindowText(CString& rString) const
{
→ASSERT(::IsWindow(m_hWnd));

ここでエラーが発生したことがわかりました。

これだけの情報で原因に検討をつけるのは難しいかも知れませんが、
どなたかアドバイスをよろしくお願いします。

(ちなみにタスクバーを使わず、タイトルバーのアイコンで縮小
した時は、このフリーズはおこりません。)

803 名前:デフォルトの名無しさん :03/11/09 00:40
デッバク かこいい〜。

804 名前:783 :03/11/09 00:50
>>796
そこで勉強はしたのですが、WAVEを使うAPIのことについては
わかりませんでした。
どうぞお願いします。

805 名前:デフォルトの名無しさん :03/11/09 00:56
>>804
スキルなさ杉。
何がわからないかわからないし
質問できるぐらいの基礎知識はつけろ。

806 名前:783 :03/11/09 01:03
>>805
>>786で書いたようなプログラムを実行する設定の手順を知りたいのですが・・・
(console applicationでそのまま実行するとエラーになるので。)
わかりませんか?
どうぞお願いします。

807 名前:デフォルトの名無しさん :03/11/09 01:05
>>806
いい加減消えてくれよ・・・頼むから。

808 名前:デフォルトの名無しさん :03/11/09 01:07
>>806
まず本買って、勉強するしかないかもな。
いや、冗談抜きでね。
それかまずHelloプログラムを探してくるとか。
(Helloプログラムとは、"Hello World!!!"と単に表示させるだけのプログラムを言い、すべての言語において基礎的なプログラムを示す。)

809 名前:デフォルトの名無しさん :03/11/09 01:07
>>806
そんな質問の仕方じゃいつまでたっても誰も相手にしてくれないよ。
だって一から全部説明するのめんどうだもの。

810 名前:デフォルトの名無しさん :03/11/09 01:08
>>806
あのページは関数の使い方を載せているだけであって、
そのまま貼り付けただけじゃ動かないのは
Cできりゃわかるだろ。

実行するとエラーになるって、具体的にはどんなエラーなのか、
あと、ソース晒せ



811 名前:デフォルトの名無しさん :03/11/09 01:15
まずここで一から勉強してみてはどうでしょうか
http://www.geocities.jp/chiakifujimon/

812 名前:783=806 :03/11/09 01:25
みなさん、ありがとうございます。
::waveInOpenの「::〜」という形や、
GetSafeHwnd()(これが一つのAPIですよね…?)
などの勉強がしたいのです。

>>808さんの仰るhello programは
#include <stdio.h>
main{ printf("hello, world\n");}
のことじゃないですよね。ひょっとしてWindowsプログラミングの
(ttp://web.kyoto-inet.or.jp/people/ysskondo/chap2.html)
↑こんなのでしょうか…?

>>810さん、>>786の(ttp://www.aa.wakwak.com/~dragoon/wave.htm)は
ソースの一部だと思うのですが、#include ~~やらmain関数やらは…?
これが自分のやりたいWAVEを扱うAPIと関係あるのか…?と言った感じです。

お恥ずかしいのは承知の上ですが、
気の向く限りお付き合いいただけたらと思います。

813 名前:デフォルトの名無しさん :03/11/09 01:27
>>810
お前責任持って相手しろな

814 名前:デフォルトの名無しさん :03/11/09 01:33
>>812
だからあなたはまだwaveを扱えるほどの技量がないと思う。
俺が行った811で基礎から叩き直してくるべきだと。
ええっと、helloworldの件だが、
それはC言語やろ。俺が言っているのはウィンドウ表示でそれを表示すれと。

ここは別にそういう初心者を対象にしていない。
初心者といっても、ある程度本で勉強して、MFCを使えないと駄目。

と誰かが言いそうだ。

815 名前:デフォルトの名無しさん :03/11/09 01:39
>>802
m_hWnd が NULLとかになってないか?
ブレークしたとこからコンテキストたどれるはず(.NET使ってないから、やりかた
知らんけど)だから GetWindowTextの呼び出し元でおかしなことになってないか、
チェック。

816 名前:783=806 :03/11/09 01:44
>>814
ありがとうございます。
そこ逝ってきます。

スレ違いかもしれませんが、ひとつだけお願いします。
hello worldなどのテキスト関係のプログラムはdos窓用に(Cでは(#include <stdio.h>
main{ printf("hello, world\n");})で表現できますが、
WAVEとなると>>811のようなWindowsプログラミングが当たり前なのでしょうか?

817 名前:デフォルトの名無しさん :03/11/09 01:55
>>816
だからそういう質問は(ry

818 名前:デフォルトの名無しさん :03/11/09 02:01
試しにお絵かきソフトを作りたいのですが、
過去に描いた部分を1枚絵にして、次に描く部分をその1枚絵に付け加えて行くような
感じにするにはどうすればよいでしょうか。

819 名前:猫でも・・・ :03/11/09 02:26
bcc32 -W -eRelease\win01.exe win01.cpp
この場合、コマンドラインオプションって、どこに入れればいいのですか??


820 名前:デフォルトの名無しさん :03/11/09 03:28
>>819
コマンドラインオプションの何たるかも分からずにプログラム作る気ですか?

821 名前:hage :03/11/09 04:39
>>820
┐(´д`)┌ ヤレヤレ
「猫でも」とか書いてあるから、ホームページ見てやり始めたんじゃねーの?
煽りじゃなかったら、教えてやれyo!!
ここは何のスレだっての。w

822 名前:デフォルトの名無しさん :03/11/09 04:45
bccのスレじゃないことだけは確かです

823 名前:デフォルトの名無しさん :03/11/09 08:52
まさかとは思うが、Waveを効果音として再生したいだけじゃないのか??????

824 名前:デフォルトの名無しさん :03/11/09 09:31
ソリューションに二つのプロジェクトを作り。
両方共,同じソースコードを使いたいのですが

ソースコードをプロジェクト毎に挙動を変え
させることは可能でしょうか?

プロジェクトAでは
int apple = 2000;
となっている部分を

プロジェクトBでは
int apple = 4000;
という風にさせていきたいのですが。

825 名前:デフォルトの名無しさん :03/11/09 09:34
1.ソリューションごとに条件定義して#ifdefを使う。
2.だが別のファイルにしたほうが、規模が大きくなってきたときの対応がしやすいかもしれん。

826 名前:806 :03/11/09 09:49
スキルがなくてとりあえずそれすらも無理だと言われましたので…sndPLAYSOUNDですよね?これは分かったのですが実際のソースが動かなく…

827 名前:デフォルトの名無しさん :03/11/09 13:40
>>824
ソリューションごとにインクルードファイルを用意してそこでマクロ定数を定義し、
共通となるソースではそのマクロ定数で挙動を変えるというのも一つの手。

828 名前:デフォルトの名無しさん :03/11/09 15:35
VC++6のリソースエディタでTABページ毎にでる項目を
エディタ側でセットする事はできないのでしょうか?
(指定のページの時は指定のダイアログの内容を表示するような)

今は、ページ切り替え毎に
プログラムでいちいちウィンドウの表示非表示、位置セットを
手動でやってますが、ちと面倒なので・・・・。

829 名前:デフォルトの名無しさん :03/11/09 16:43
できたらいいね。それだったら私も使いたいな。

830 名前:デフォルトの名無しさん :03/11/09 18:37
>824
iniファイルで指定、ってのもアリかと

831 名前:デフォルトの名無しさん :03/11/09 23:11
たとえBCCだとしても猫でBCC編がはじまってるんだが

832 名前:デフォルトの名無しさん :03/11/10 22:44
ウインドウのサイズを変更しながら、
一定の大きさ以上になろうとしたときに
それ以上大きくならないようにするにはどうしたら良いでしょうか。

833 名前:デフォルトの名無しさん :03/11/10 23:27
>832
【初心者歓迎】C/C++室 Ver.2【環境依存OK】
http://pc2.2ch.net/test/read.cgi/tech/1067189450/441-442

834 名前:生茶 ◆6qVNOCbX1M :03/11/11 00:29
最近、C++の勉強を始めました!

以下のようなことをやりたいのですけど、どう組んだらいいか教えていただけませんか??
特に、各クラスのポインタの渡し方などをどのようにすればよいか頭にうかばないんです。

厨な質問ですみませんが、どうぞご教授くださいまし。m(_ _)m

【やりたいこと】
1.ログを処理するクラスを作成し、AddLog(CString)いうメンバ関数を作成する。

  AddLog関数は、ダイアログのリストボックスに引数の文字列を表示する。

2.インスタA、B、Cから  ダイアログのリストボックスに出力したいメッセージを
  ログクラスのメンバ関数AddLog()の引数に設定して呼び出す。


ダイアログ−インスタA−インスタB−インスタC
 ↑       │      │      |
ログ←────┴────┴────┘


835 名前:デフォルトの名無しさん :03/11/11 08:30
>>832
WM_SIZEを取得して処理したら?

836 名前:デフォルトの名無しさん :03/11/11 09:54
this って何に使うの?使った事無いな。

837 名前:デフォルトの名無しさん :03/11/11 10:14
>>836
たとえば、operator=をオーバーライドする時、return *this;って書いたりしない?
あと、そのインスタンス自身への操作を他の関数に委譲したりするときとか。

838 名前:デフォルトの名無しさん :03/11/11 14:51
>>834
ログクラスのインスタはダイアログのメンバか?
まぁ、正解なんて無いから、思うようにコーディングすればいいと思うけど。

ところで、インスタって

839 名前:デフォルトの名無しさん :03/11/11 15:06
変な略語はやめてほしいなあ

840 名前:デフォルトの名無しさん :03/11/11 15:07
>>836
CPaint dc(this);とか。

841 名前:デフォルトの名無しさん :03/11/11 15:08
ありゃ、CPaintDCだよ。

842 名前:デフォルトの名無しさん :03/11/11 15:33
すれ立てるまでもない質問はここで、スレに書いたのですが
ご存知の方がいないようですので、VC++をお使いの方にお聞きします。

Excelのアドオンを作りたいと思うのですが、情報をどうやって調べていいか分かりません。
Googleで「Excel アドオン ActiveX」とか検索してもプログラミング関連でないものばかりヒットしてしまいます。
C++は多少分かりますが、ActiveXとかWindowsプログラミングにはそれほど精通していません。

具体的には、ある程度の規模の線形計画法を解きたいのですが
標準のソルバーでは解くことができないので、glpkなどのライブラリを使おうと思います。

アドオンでなく、VBAからDLLとして呼び出す方法も考えたのですが
VisualBasicは不慣れなので、どちらがいいか迷っています。

この辺に詳しい方、アドバイスをお願いします。


843 名前:デフォルトの名無しさん :03/11/11 15:51
ところで、
★初心者にVisual C++を教えるスレ★
の初スレが建ったころ、VCの本スレって別になかったっけ?
MFCスレだけだっけ?
//こっちは当初糞スレ扱いだった記憶が


844 名前:デフォルトの名無しさん :03/11/11 16:06
>>843
あったよ。でも、結局VC++の中でもMFCの人はMFCスレで質問するし、Win32APIの人はWin32API質問箱で質問するし、初心者の中の一人がVC++スレじゃやさしく教えてくれないとかで糞スレを立てたのがこのスレの始まり。
そのうちその糞スレ立てた1も消えて、徐々に普通の質問スレになった。
その後MFCスレとかでも初心者すぎる質問を誘導するための初心者用スレがあった方がいいという話も出てきてここの>>1にあるような「質問の仕方」やスレのテンプレ案が出て、それがこのスレで採用され、今に至る。

845 名前:844 :03/11/11 16:09
経緯を説明できるほど自分は2chばかり見てることに気づいてちょっと凹んだ。

846 名前:ふんがが :03/11/11 16:50
はじめまして。VCの初心者です☆ビットマップをファイルからメモリに読み込みたいのですが、うまくいきません。「loadimage」って関数を使っているのですが、この関数は難しいのですか?よろしくお願いします。

847 名前:デフォルトの名無しさん :03/11/11 16:52
( ゚Д゚)ポカーン・・・

848 名前:ふんがが :03/11/11 16:55
?????


849 名前:デフォルトの名無しさん :03/11/11 17:32
>>844
その元本スレのタイトルかポインタきぼん。

次スレ立てるとき、テンプレに入れたほうがよくね?
一応VCのKBになるわけだし。

850 名前:デフォルトの名無しさん :03/11/11 17:33
>>846
質問文に「☆」を入れるな!
むかつくんだよ!

851 名前:デフォルトの名無しさん :03/11/11 17:35
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

852 名前:デフォルトの名無しさん :03/11/11 18:00
>>849
VisualC++相談室
part 1 http://piza.2ch.net/tech/kako/970/970607517.html
part 2 http://piza.2ch.net/tech/kako/981/981630730.html
part 3 http://piza2.2ch.net/tech/kako/993/993186053.html
part 4 http://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 http://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 http://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 http://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 http://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 http://pc2.2ch.net/tech/kako/1036/10368/1036897197.html

C++スレの過去スレから引っ張り出してきた。
こうしてみると結構続いてたんだな。

853 名前:デフォルトの名無しさん :03/11/11 18:12
>>852 ミラクルサンクスコ☆

854 名前:デフォルトの名無しさん :03/11/11 19:44
MFCで、マウスリリースイベント拾いたいんだけど、
君ならどうする?

855 名前:デフォルトの名無しさん :03/11/11 19:58
VCでマウスリリースイベントなんて言う?
On*ButtonUp系かな。*は左ボタンならL、右ならR、真中ならM

856 名前:デフォルトの名無しさん :03/11/11 20:51
マウスリリースイベントって何?

857 名前:855 :03/11/11 20:59
検索したらJavaとかQtしかヒットしなかった。マウスを放したときのイベントらしいので>>855を紹介したんだけど。

858 名前:デフォルトの名無しさん :03/11/11 22:59
>>856
鼠を放すんだよ、きっと。

>>846
愚痴と質問からなったレスのようなので、質問にのみ回答。
>この関数は難しいのですか?
いいえ。

859 名前:デフォルトの名無しさん :03/11/11 23:02
>>836
亀だけどVCのエディタ使ってるなら補完が効くから、メンバうろ覚えのときに
this->と書いてから頭文字を2,3個いれて選んでる。
で、かっこ悪いから後でthis->を置換で消す。
見たいな使い方してます。

860 名前:デフォルトの名無しさん :03/11/11 23:12
>>859
Ctrl+Spaceで出ますが何か。

861 名前:デフォルトの名無しさん :03/11/12 01:05
>>860
そうだったのですかっ。
予約語の中でthisを一番多く打ってる気がする俺。

862 名前:デフォルトの名無しさん :03/11/12 01:45
VC++でOutlook Express見たいなUIはどうやって作るの?
C++Builderなら簡単なのに・・・

863 名前:デフォルトの名無しさん :03/11/12 01:48
MSNメッセみたいに閉じるボタンを押すとタスクトレイのほうにするっと
収納されるようなものってどうやって作るの?

864 名前:デフォルトの名無しさん :03/11/12 02:06
スクロールバー入れたダイアログボックス表示するときに、
スクロールバーの最小最大値をセットするために
SetScrollRange(0,255)
関数をダイアログのクラスのコンストラクタにセットしたのですが、
ダイアログを表示したら不正終了になってしまいます。
一体どこで最小最大をセットすればよいのでしょうか?

865 名前:デフォルトの名無しさん :03/11/12 03:16
>>832
WM_MINMAXINFOだな。場合によってはWM_SIZINGも。

866 名前:デフォルトの名無しさん :03/11/12 03:49
>>865
微妙に亀レスな上、回答済み、しかもメッセージ名間違ってますよ?

867 名前:デフォルトの名無しさん :03/11/12 10:44
>>862
MFCのWizardならそれっぽいスケルトンが作れる。
エクスプローラ形式+スプリッタでどうよ?

868 名前:デフォルトの名無しさん :03/11/12 13:29
>>864
コンストラクが動くときにはまだウィンドウは出来ていない⇒SetScrollRange 出来ない
OnInitDialog あたりでやってみたら。

869 名前:デフォルトの名無しさん :03/11/12 20:01
>>867
それだと左と右にしか分割されない
右を更に上:リスト、下:エディットに分割したい

870 名前:デフォルトの名無しさん :03/11/12 20:11
>>869
だからスプリッタを入れ子にするんだって。
スプリッタウィンドウを使ってエクスプローラのような左右分割にして、(←ここまではWizardでできる)
さらにその右ペインをスプリッタウィンドウを使って上下分割する。

871 名前:デフォルトの名無しさん :03/11/12 20:12
VCでデバッグメッセージ出力みたいな関数があったとおもったんですけど思い出せません。

872 名前:871 :03/11/12 20:13
検索したらありました。すみません。・OutputDebugString

873 名前:864 :03/11/12 20:49
>>868
どーもありがとうございました。解決しました。

874 名前:デフォルトの名無しさん :03/11/12 21:43
デバッグ方法
ttp://www.nitoyon.com/vc/tutorial/debug/win32.htm

875 名前:デフォルトの名無しさん :03/11/13 00:37
ダイアログのピクチャ領域を再描画するときは
何のメッセージを処理すれば良いのですか?

876 名前:875 :03/11/13 00:40
全部OnDrawで処理してしまえば良いのですか。

877 名前:875 :03/11/13 00:51
OnDrawで処理しようとすると、
ダイアログがまだ表示されていない状態では危険なので、
そのときはifを用いるのですか?

878 名前:デフォルトの名無しさん :03/11/13 02:57
すごく初歩的な質問で申し訳ないのですが、
継承を使用せず、クラスAとクラスBをクラスの双方向
の関連を持たせるにはどうコーディングすればいいんでしょうか?

「クラスAにはクラスBのポインタ」を「クラスBには
クラスAのポインタ」を持たせればいいんでしょうか?

クラスAはクラスBを持っていて(has-a)、クラスBはクラスA
を持ってる(has-a)??
もしそうだとすると、ヘッダが2重定義みたいになってしまい
ますよね???

879 名前:デフォルトの名無しさん :03/11/13 03:37

キーボードメッセージでF10だけが取得できません。
ほかのファンクションキー、F1〜F9、F11、F12は取得できます。
どなたか取得方法ご存知ありませんか?
ソースの一部)
case WM_KEYDOWN:
  switch(wParam) {
    case VK_F9:
      MessageBox(hWnd, "F9", "test", MB_OK);
    break;
    case VK_F10:
      MessageBox(hWnd, "F10", "test", MB_OK);
    break;
<以下略>
環境)
WinXP Pro
VisualC++6.0Pro + SP5

880 名前:デフォルトの名無しさん :03/11/13 03:52
>>879
WM_SYSKEYDOWNで行けそうな予感。
多分Windowsのショートカットキーだからかな?

881 名前:879 :03/11/13 04:12
>>880
WM_SYSKEYDOWNで出来ました。
ありがとうございます。一発で解決しました。

882 名前:デフォルトの名無しさん :03/11/13 05:23
>878
「前方宣言」とか「不完全クラス」で調べてみ。

そういやコンストラクタで互いにnewしたら、
コンパイルエラーにならない無限相互has-a関係が出来るな。逝くだけだけど。

883 名前:デフォルトの名無しさん :03/11/13 09:43
D3DXCreateTextureFromFileでビットマップからテクスチャを作りたいんですが
第二引数の読み込む画像の指定はどう書けばいいのでしょうか。
たとえばリソースとしてabon.bmpをインポートした場合どうなるのでしょう。
単に第二引数にabon.bmpと入れるだけではだめでした。 

884 名前:デフォルトの名無しさん :03/11/13 11:48
D3DXCreateTextureFromResource
使ったことないけど名前からしてこれだろ

885 名前:878 :03/11/14 01:15
>>882
ありがとうございますた。

Googleとかで調べて解決しました。
また、一昨日にEffectiveC++を購入したのでいっしょに見ています。
ちなみに、EffectiveC++には、ヘッダファイルの中で他のヘッダ
ファイルのincludeは極力さけるべきだと書いてありましたね。

ということで、ヘッダファイル内に関連するクラスのヘッダファイ
ルをincludeするものと思っていましたが、認識が違ったようです。

886 名前:878 :03/11/14 01:53
またまた、初歩的な質問で申し訳ないのですが、
下のように階層が深いクラスCのデータを表示するためのダイアロ
グCを作成したとします。
ダイアログはダイアログCを生成し、ダイアログCにクラスCへのポインタを
教えてやる必要があると思っています。

          has-a         has-a has-a
┌─────┐   ┌─────┐  ┌─────┐  ┌─────┐
|ダイヤログ ├──┤  クラスA ├─┤ クラスB ├─┤ クラスC │
└──┬──┘   └─────┘  └─────┘  └──┬──┘
     │                                ┌──┴──┐
     └─────────────────────┤ダイアログC│
            has-a                      └─────┘

上の例では、階層が浅いですが、階層が深くなるにつれ(クラスn-ダイアログn)、
ややこしいことになりそうな気がするのですが、なにかテクニックがあるんでしょうか?

もしかしすると認識の大きな間違えがあるのかもしれませんが・・・

887 名前:デフォルトの名無しさん :03/11/14 02:03
ダイアログとダイヤログをどう使い分けてるの?

888 名前:878 :03/11/14 02:07
>>887
図中のダイヤ(ア)ログがミスタイプだす(´Д⊂グスン

889 名前:デフォルトの名無しさん :03/11/14 02:26
>>886
ダイヤログのポインタはグローバル関数AfxGetMainWindow()で
どこからでも取れるので

CDialogC *ptrC = ((CMyDialog*)AfxGetMainWindow())->GetDialogC();

みたいな雰囲気でできると思うけど。

890 名前:デフォルトの名無しさん :03/11/14 02:27
>>888
別にダイヤログでも間違い(tbs
diamondがダイヤモンドになる国だし。


891 名前:889 :03/11/14 03:10
AfxGetMainWnd() だった。

>>889を書いた自分が言うのも何なんだけど、C++のキャストの使い分けってのが
今一つよくわかっておらず...

きちんと書くと reinterpret_cast とか dynamic_cast とか static_cast とか
のうち、どれを使うべきなのでしょうか?

892 名前:デフォルトの名無しさん :03/11/14 03:19
>>891
reinterpret_castは、無関係の型のポインタ同士や、整数型への型変換など。
dynamic_castは、ポリモーフィズムを使用した時のサブクラスへの安全なキャストや、ダイアモンド継承をしたときなど。
const_castはconst/volatileをつけたりはずしたり。
static_castは上記以外の普通のキャスト。

サブクラスへのキャストはdynamic_castを使用してちゃんとNULLじゃないか確かめるのが筋だけど、
今回のように入っているものの型が自明で、NULLチェックもしないような手抜きにはstatic_castがお似合い。

893 名前:デフォルトの名無しさん :03/11/14 03:39
追加
MFCにはDYNAMIC_DOWNCASTもあるので、コンパイラオプションいじりたくないときはこっち使うのも手。

894 名前:883 :03/11/14 11:17
やはりCreateTextureFromFile関数であっていると思いますが・・・
ビットマップの指定の部分がうまくいきません。

895 名前:デフォルトの名無しさん :03/11/14 13:47
大変初歩的なことなんですが、2の5乗などを表すには
どう表記したらいいのでしょうか?

896 名前:デフォルトの名無しさん :03/11/14 14:26
pow(2,5)

897 名前:デフォルトの名無しさん :03/11/14 15:19
最適化:実行速度でやりたいのですが・・・。
--------------------構成: bench - Win32 Debug--------------------
コンパイル中...
コマンド ラインのエラー D2016 : コマンド ライン オプション '/ZI' と '/O2' は同時に指定できません
cl.exe の実行エラー

bench.obj - エラー 1、警告 0

のようなエラーが出てしまいます。どうしたらよいのでしょうか?
あまりよくわからないので、丁寧に教えてください。

898 名前:デフォルトの名無しさん :03/11/14 15:27
アクティブな構成を、Releaseビルドにしなさい。

899 名前:デフォルトの名無しさん :03/11/14 15:41
898番さん、ありがとうございます。
これで宿題ができました。

900 名前:デフォルトの名無しさん :03/11/14 15:55
>>894
取り敢えず近辺のソース晒しなさい。
多分ビットマップの作り方間違ってると思うから。

901 名前:デフォルトの名無しさん :03/11/14 16:04
>>892-893  ありがと。参考になった。

902 名前:デフォルトの名無しさん :03/11/14 17:00
CTabCtrlをCreateしてみたところ、文字のフォントが異様に大きくなってしまいました。
サイズを小さくしたいのですが、どうしたらいいでしょうか。
SetFontを使ってみましたが、タブの大きさが変化するだけで、文字のサイズは変わりませんでした。

903 名前:デフォルトの名無しさん :03/11/14 18:04
>>900
894じゃないんですが、僕もなぜかロードできない現象に悩んでるのでソースをさらします。

LPDIRECT3DDEVICE9 d= GGraphics::Get()->GetDevice();
char buf[256];
GetCurrentDirectory(100,buf);
if(FAILED(D3DXCreateTextureFromFileExA(d, filename,0,0,0,0,D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_FILTER_NONE ,D3DX_FILTER_NONE,0xFF000000,NULL,NULL,&m_pTexture ) ))
{

}
MSDNによれば、エラーコードは「D3DXERR_INVALIDDATA データが無効である。 」でした。
bufはデバッグでカレントディレクトリを調べるためのものです。
しかしカレントディレクトリにfilenameで指定したファイルがあるにもかかわらず失敗しました。
Direct3Dの初期化には成功しています。
bmpはWindowsペイントで作成した256*256フルカラービットマップです。

904 名前:デフォルトの名無しさん :03/11/14 18:26
つーか、DirectXのスレいきんしゃい

905 名前:903 :03/11/14 20:14
すみません。ディレクトリ間違ってました。本当にすみません。

906 名前:デフォルトの名無しさん :03/11/14 20:28
a.cppに
#define __hoge__
と定義して

b.cppにも
#define __hoge__
を引き継ぐ事は可能でしょうか

headerファイルに#defineを定義するのではなく。

907 名前:デフォルトの名無しさん :03/11/14 21:23
>>906

-- a. cpp --
#define __hoge__
#pragma once
-- b.cpp --

#include "a.cpp"

(゚д゚)ウマー。

908 名前:デフォルトの名無しさん :03/11/14 21:55
int型のデータ123をファイルにテキストとして保存したいのですが。
どうしたらいいでしょうか?
基本的なことなんですが全く分かりません。
CArchive& ar
ar << 123;
で文字化け。
ar << (CString)123;
でも文字化け。
う〜ん・・・どうやるんだっけ・・・・というかんじです。

909 名前:デフォルトの名無しさん :03/11/14 21:57
>>908
CArchive はテキスト書き出し用のクラスじゃない、ってことを理解スレ!
CFile で書け。

910 名前:902 :03/11/14 22:00
自己解決できました。 スレ汚しすみません。 
方法: クラスのメンバにCFontを持たせることで解決しました。


911 名前:デフォルトの名無しさん :03/11/14 22:03
>>906 それかプロジェクトオプションで指定

912 名前:デフォルトの名無しさん :03/11/14 22:30
>>909
もうちょっとヒント下さい。
Write関数でやってみたのですがやっぱり文字化けしてしまいます。

913 名前:デフォルトの名無しさん :03/11/14 22:42
FILE*とfprintfでもつかっとけ。

914 名前:デフォルトの名無しさん :03/11/14 22:59
MFC 風:
 CFile f("hoge.txt", CFile::CFile::modeCreate | CFile::modeWrite | CFile::modeText);
 CString s;
 s.Format(_T("%d\r\n"), 123);
 f.Write(s, s.Length());

#include <cstdio> 風:
 FILE* fp = fopen("hoge.txt", "w+t");
fprintf(fp, "%d\n", 123);

C++ 風:
 using namespace std;
 ofstream ofs("hoge.txt");
 ofs << dec << 123 << endl;


915 名前:デフォルトの名無しさん :03/11/14 23:00
書式付きファイル出力をサポートするMFCは用意されてないのでしょうか?
CFileクラスを調べたのですがそれらしい物ありませんでした。
俺の検索不足orスキル不足なんでしょうか。

916 名前:デフォルトの名無しさん :03/11/14 23:01
>>914

> s.Format(_T("%d\r\n"), 123);
これは  s.Format(_T("%d\n"), 123); でそ。


917 名前:デフォルトの名無しさん :03/11/14 23:04
>>914
細かいとこまでありがとうございます。
>>915は気にしないで下さい。読む前に書いてしまいました。
試してみます。

918 名前:デフォルトの名無しさん :03/11/15 00:49
pure virtual function callというエラーはどうして起きるのでしょうか・・・
自分のつたないC++の知識では、pure virtualなら呼びようがないと思うのですが・・・。


919 名前:デフォルトの名無しさん :03/11/15 00:51
派生クラスのデストラクタが通った後にPureVirtualFunctionの
呼び出しをかければそういうエラーが出てきた記憶がある、、

920 名前:デフォルトの名無しさん :03/11/15 01:01
http://jp.sun.com/software/sundev/suncc7001/faqs/cpp.html#3q7
ああ、そうか、thisを渡すのがポイントなのか。

921 名前:デフォルトの名無しさん :03/11/15 01:03
解像度が変わった事を取得することは出来ますか?

922 名前:デフォルトの名無しさん :03/11/15 01:04
>>919
>>920
サンクスです。
じぶんのそーすでもthisを渡していたのでチェックしてみます

923 名前:デフォルトの名無しさん :03/11/15 11:02
質問です。
全角を含む文字列の何バイトから何バイト目までの
文字列置換を行いたいのですがどうすればよいのでしょうか?
例えば "abcdeあいうえおaiueo" という文字列があった場合
10バイト目から12バイト目の "う" だけを他の全角文字に置換したいのですが・・・
本当はC#で書きたいのですがこの程度の処理ならC++でも対して変わりないと
思いましたのでこちらに書きこみました。
スキルのある方お願いします。


924 名前:デフォルトの名無しさん :03/11/15 11:41
str[9] = "か"[0];
str[10] = "か"[1];

925 名前:デフォルトの名無しさん :03/11/15 11:54
>"abcdeあいうえおaiueo" という文字列

char* WCHAR* CString std::string std::wstring BSTR LPCSTR

926 名前:デフォルトの名無しさん :03/11/15 13:54
かなり初歩の質問で申し訳ありません。

SetTimer を使っていますが、OnTimer が呼び出されないのです。

MFC AppWizard を使っています。
CTestView に、WM_TIMER を追加し、
CTestView のコンストラクタで SetTimer(1,1,NULL) としているのですが、
OnTimer() が呼び出されません。
(OnTimer() の中に記述した処理が行われていない)

また、同クラス内に OnPaint() がありますが、
これは、画面の再描画のときに呼び出されると思っているんですが、
ウィンドウを動かしても、Invalidate(false) としても呼び出されません・・・。
最小化したときは呼び出されているようです。

いじった点と言えば、プロジェクト作成の際
ドキュメント/ビュー アーキテクチャ のサポートをはずしたのと、
ActiveX コントロールをはずしたのと、
ウィンドウのリサイズができないように
PreCreateWindow 内で cs をいじった程度です。

よろしくお願いします。

927 名前:デフォルトの名無しさん :03/11/15 15:37
>>926
つーかインターバル短くないか?
それにコンストラクタじゃなくてOnCreateで呼び出したほうがいいと思うが。

928 名前:925 :03/11/15 16:52
>>926
CMainFrm の OnCreate() ですか?
移動してみましたが、変わらず、でした・・・。

書き忘れましたが、
SetTimer の戻り値は 0 ではないようですので、
正常終了しているはずなのです。

929 名前:デフォルトの名無しさん :03/11/15 17:25
>>928
Win32とMFCの基礎を先ず勉強した方がいいと思うが・・・。

CTestViewのコンストラクタ内でSetTimerを使っても、まだウィンドウは作成されていないのでOnTimerではなく第3引数のコールバック関数が呼び出される。
CMainFrame内でSetTimerを使えばCMainFrameのOnTimerが呼び出される。


930 名前:デフォルトの名無しさん :03/11/15 17:47
エディットボックスなどを作れるコントロールパネルは
どうやったら出せるのですか。
ダイアログしか出ないです。

931 名前:デフォルトの名無しさん :03/11/15 17:48
は?

932 名前:デフォルトの名無しさん :03/11/15 17:49
>>930
MFCスレとマルチだろ

933 名前:925 :03/11/15 18:11
>>929
なるほど、言われてみれば最もです。
全く気がつきませんでした。ありがとうございます。

934 名前:デフォルトの名無しさん :03/11/15 18:41
>>932
どこで聞けばいいのですか。

935 名前:デフォルトの名無しさん :03/11/15 18:45
>>934
どこでもいいがとりあえず日本語を話せ

936 名前:デフォルトの名無しさん :03/11/15 18:46
>>934
どこで聞いてもそんな質問の仕方じゃ相手にしてもらえません。

937 名前:934 :03/11/15 18:59
>>935>>936
すみません。
MFCでエディットボックスなどを作れるコントロールを
使いたいのですが、どうやったら出せるのですか。
画面上にダイアログしか出ていなくて、出し方が分かりません。
宜しくお願いします。

938 名前:デフォルトの名無しさん :03/11/15 19:05
メニューの[ツール]→[カスタマイズ]→[ツールバー]タブ→[コントロール]にチェック

のことか?

939 名前:デフォルトの名無しさん :03/11/15 19:07
まだVC++を始めてないのに質問です。
UNIXで云うmanのような、関数の返り値、引数、エラー(例外?)が
調べられるコマンドまたは、ソフト、WEBサイトは存在しますか?
できれば、Javaのようにクラス毎に整理された資料があるといいなぁとか妄想しています。


940 名前:934 :03/11/15 19:08
>>938
ありがとうございます。大変失礼しました。

941 名前:デフォルトの名無しさん :03/11/15 19:12
>>939
MSDNライブラリというチュートリアルからリファレンス、技術情報が書いてある巨大なヘルプファイルがある。
Webでも公開されている。

942 名前:デフォルトの名無しさん :03/11/15 19:13
>>939
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_mfc_Class_Library_Reference_Introduction.asp
こことか。

製品にはこれのもっと詳しいオフライン版がついてくるはず。

943 名前:939 :03/11/15 19:25
>>941 >>942
どうもです。

944 名前:fofofo :03/11/15 21:45
#include <stdio.h>

void main()
{
int i;

printf("前方が危険な場合は車線をはみ出してもよい ○の場合は5\n");
scanf("%d\n",&i);


if(i<=5){

printf("正解\n");
}else{

printf("間違い\n");




どこがダメかわかりますか?識別子pの前に;を付けろっていうコンパイルエラーが出たんですが全く分かりません

945 名前:デフォルトの名無しさん :03/11/15 21:55
ネタ?”}”が大文字だよ


946 名前:デフォルトの名無しさん :03/11/15 22:00
#include "stdafx.h"って何ですか?

947 名前:デフォルトの名無しさん :03/11/15 22:07
>>946
http://www.google.co.jp/search?q=stdafx.h&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

948 名前:デフォルトの名無しさん :03/11/15 22:07
プリコンパイルヘッダとは、<stdio.h><windows.h>といった滅多に変更することがないヘッダを
特殊な形で事前にコンパイルしておき、コンパイルの速度を速くする仕掛けだ。
で、VCにはその滅多に変更することがないヘッダをstdafx.hの中に書くという慣習がある。


949 名前:デフォルトの名無しさん :03/11/15 22:22
stdafx.hというヘッダファイルは何処にあるのですか?

950 名前:934 :03/11/15 22:38
コントロールについて質問した者ですが、
ワークスペースを作った時に自動的にコントロールが
表示されるように出来ませんか。
毎回表示するのが面倒なので。

951 名前:934 :03/11/15 23:27
>>950
質問を取り消します。

952 名前:934 :03/11/15 23:34
ここのスレには新Visual C++6.0入門ビギナー編 林晴比古著
を勉強している方はいますか。
Chapter10あたりからつまずいています。

953 名前:デフォルトの名無しさん :03/11/15 23:37
>>945さん、アホなミスに付き合ってくれてありがとうございました

954 名前:デフォルトの名無しさん :03/11/15 23:40
そろそろ次スレ?

955 名前:デフォルトの名無しさん :03/11/15 23:45
>>952 みんなつまづいてるから質問するんだ。どんとこいコラ

956 名前:デフォルトの名無しさん :03/11/16 00:36
>>954
まだいい。

957 名前:934 :03/11/16 00:42
>>955
ありがとうございます。
分からない事をまとめてから聞きたいと思います。

958 名前:デフォルトの名無しさん :03/11/16 01:31
OnPaintとOnViewどう違うか良く分かりません。どうなのですか?

959 名前:デフォルトの名無しさん :03/11/16 01:44
>>958
まずOnViewがどんなものなのか説明を頼む。

960 名前:デフォルトの名無しさん :03/11/16 01:49
漏れはOnPaintとOnDrawの違いの方が知りたい

961 名前:958 :03/11/16 02:11
OnViewじゃなくてOnDrawだった

962 名前:デフォルトの名無しさん :03/11/16 02:19
void CView::OnPaint()
{
 // standard paint routine
 CPaintDC dc(this);
 OnPrepareDC(&dc);
 OnDraw(&dc);
}

That's all.   なのかな?

963 名前:958 :03/11/16 02:44
どうもありがとうございます。
大した違いは無いんですね。

964 名前:958 :03/11/16 02:47
ついでに、
CFormView継承でピクチャボックスに何か描いたりしてから、
ウインドウをサイズ変更してスクロールバーが表示されるまで小さくすると
不正終了してしまいます。
これはなんとかなりませんか?実際のところ泣きそうです。

965 名前:デフォルトの名無しさん :03/11/16 02:56
>>964
俺の予想では0除算だな

966 名前:958 :03/11/16 03:05
CFormViewを継承したスケルトンに、
ピクチャボックス(IDC_PICT)をひとつ作って
OnPaint()でそのピクチャボックスを黒く塗りつぶす処理をしているだけです。
CWnd *pict=GetDlgItem(IDC_PICT);
CClientDC picDC(pict);
CRect picRect;
pict->GetClientRect(&picRect);
picDC.FillSolidRect(picRect,RGB(0,0,0));
これでウインドウを小さくして、スクロールバーが表示されたときに
スクロールバーを動かそうとすると不正終了します。

967 名前:デフォルトの名無しさん :03/11/16 05:13
遅レスですが・・。

>>828 の様な事ができる開発環境はありますか?

968 名前:デフォルトの名無しさん :03/11/16 05:37
Viewにスクロールバーをつけたくて
WS_VSCROLLをスタイルに追加したら表示はされたんですが
ためしに動かしてみるとぴゅーっと一番上に戻ってしまいます。
いったいこれはどういう仕様なんでしょう。
あとどんな処理が必要なんでしょうか?
宜しくおねがい

969 名前:デフォルトの名無しさん :03/11/16 09:01
>>968
WM_HSCROLL/WM_VSCROLLに適切なハンドラが必要

970 名前:934 :03/11/16 09:24
新Visual C++6.0入門ビギナー編 林晴比古著のChapter11のp.321で
外周部の意味が良く分からず、ピクチャプロパティが出ません。

971 名前:デフォルトの名無しさん :03/11/16 10:04
VC++6.0,Win2000を使っています。

img.cpp(125) : fatal error C1010: プリコンパイル済みヘッダーの検索中に
予期しない EOF を検出しました。
imgbmp.cpp(548) : fatal error C1010: プリコンパイル済みヘッダーの
検索中に予期しない EOF を検出しました。

が出ます。助けてください。

現在、
toglimg.hを
img.cppと
imgbmp.cpp
main.cppでインクルードしており、上記のように2つ出ます。



972 名前:デフォルトの名無しさん :03/11/16 10:07
>>971
#include "stdafx.h"

973 名前:デフォルトの名無しさん :03/11/16 10:09
>>972
エラーが増えましたよ

974 名前:デフォルトの名無しさん :03/11/16 10:19
どなたか>>971分かる方いませんか…


975 名前:デフォルトの名無しさん :03/11/16 10:44
>>971
ケースバイケースとしか言いようが無いのでポイントのみ。
・リビルド
・中間ファイルを消してリビルド
・プロジェクトの設定を見直してからリビルド


976 名前:デフォルトの名無しさん :03/11/16 11:34
そろそろ次スレ?

977 名前:デフォルトの名無しさん :03/11/16 11:46
>>971
プリコンパイルヘッダを使うなと言ってみる

978 名前:デフォルトの名無しさん :03/11/16 11:51
>>971
img.cppとimgbmp.cppがインクルードしているヘッダに記述ミスが
あるのでは?
「;」つけてないプロトタイプ宣言があったりとか
「}」で閉じていない関数があったりとか

MFCプロジェクトならその2つのcppの先頭にstdafx.hを入れてない
可能性が高いんだけど、コンソールアプリっぽいね。

979 名前:971 :03/11/16 12:23
なんとか解決しますた。
空プロジェクトにヘッダとcppを追加して、stdafx.hを
使わない形?にしたら出来ました。

980 名前:デフォルトの名無しさん :03/11/16 16:45
VC.NETでBHO作るのはどうすればいいのでしょうか。
VC6のサンプルはMSDNにあるのだけど、.NETではウィザードとかの形式変わっていて・・・

981 名前:デフォルトの名無しさん :03/11/16 20:17
Viewの現在のフォントを使ってある文字列を描画した場合、
その文字列が収まる矩形を知りたいのですがどうすればよいのでしょうか?


982 名前: ◆Manna2uCLg :03/11/16 20:19
さすがに、もうそろそろ次スレが必要だろう……
ってことで、ちょっくら立ててくるぜー

983 名前:デフォルトの名無しさん :03/11/16 20:38
>>982
よろしくりくりクリトリス。

984 名前: ◆Manna2uCLg :03/11/16 20:56
★初心者にVisual C++を教えるスレ★ Part9
http://pc2.2ch.net/test/read.cgi/tech/1068983609/

立てた〜


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