[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:59 / Filesize : 221 KB / Number-of Response : 903
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part33



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

28 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:23:21 ]
CLRアプリ作るつもりなら、役に立つと思う。

29 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:25:18 ]
>>27
「.」もあるんだが。

30 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:14:35 ]
visual studio2008 XPです。

印刷機能の実装が分からないです。

フォームのtextBox1に計算結果が返されるとして、
例えば、textBox1の中身を印刷するには、
最低限何をすればいいですか?

31 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:23:16 ]
環境によるけど、文字列をプリンターに出す程度なら
そこらのサンプルコード切り貼りだけでいけるぞ。

32 名前:デフォルトの名無しさん [2009/02/26(木) 11:27:32 ]
C#しか無くないですか?

C++に変換しても、ビルドできません><

33 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:07:04 ]
付属のドキュメントのサンプル切り貼りでいけたが。
プロジェクト新規作成してtextBox1とprintDialog1を貼り付けて
↓を適当な位置に入れただけ。
using namespace System::Drawing::Printing;

System::Drawing::Printing::PrintDocument^ docToPrint;

Form1(void)
{
InitializeComponent();
docToPrint = gcnew PrintDocument;
docToPrint->PrintPage += gcnew
System::Drawing::Printing::PrintPageEventHandler
(this, &Form1::document_PrintPage);
}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
System::Windows::Forms::DialogResult result;
printDialog1->Document = docToPrint;
result = printDialog1->ShowDialog();
if (result == ::System::Windows::Forms::DialogResult::OK)
{
docToPrint->Print();
}
}

void document_PrintPage( Object^ /*sender*/, System::Drawing::Printing::PrintPageEventArgs^ e )
{
String^ text = textBox1->Text;
System::Drawing::Font^ printFont = gcnew System::Drawing::Font( "Arial",35,System::Drawing::FontStyle::Regular );
e->Graphics->DrawString( text, printFont, System::Drawing::Brushes::Black, 10, 10 );
}

34 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:46:38 ]
ウホッ。ありがとうございます。ただ・・

(this, &Form1::document_PrintPage);
↑の部分で


error C2039: 'document_PrintPage' : '印刷2ch::Form1' のメンバではありません。

と、出てしまうんですが・・。

35 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:52:40 ]
それは
void document_PrintPage( Object^ /*sender*/, System::Drawing::Printing::PrintPageEventArgs^ e )
この関数だから、それに合わせればいい。

36 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:53:27 ]
じゃぁ、こうですね(・∀・)

(this, &Form1::printDocument1_PrintPage);



37 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:53:53 ]
あ、サンプル通りクラス定義内に書いたからクラス名省略されてるけど
メンバー関数だよ、どれも

38 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 13:09:12 ]
なぜか、ファイルに出力されるんですが・・。

39 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 13:21:27 ]
あ、いけました。でかいフォントですな。

ありがとうございます!!

40 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:32:15 ]
初めてVisual C++を使ってみました。
int main(array<System::String ^> ^args)
いきなり ^ という単項演算子らしき物が出来たのですが、コレはなんですか??
とりあえずarray以下無視しても問題なく動いたのですが。

41 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:35:04 ]
C++をやりたいのかC++/CLIをやりたいのかで返答は変わる

42 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:36:05 ]
>>41
標準のC++です。


43 名前:デフォルトの名無しさん [2009/03/02(月) 00:39:19 ]
VC++2008EEで
#include <iostream.h>

int main()
{
cout << "やぁ、こんちは。" << endl;
return 0;
}
はどこでプログラミングすればいいんですか? 普通に新規作成から何か設定するんですか?warning C4627: '#include <"stdafx.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します
が出てきます。

44 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:28:36 ]
>>42
なら作ったプロジェクトが間違ってる。
>>40はC++/CLIのプロジェクト。

45 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:37:36 ]
>>43
Win32 コンソールアプリケーションのプロジェクトを作れ。
プリコンパイル済みヘッダーを使いたくなければプロジェクトの設定から無効にしろ。
あと、iostream.hは古いヘッダで今のVC++には無い。

46 名前:デフォルトの名無しさん [2009/03/02(月) 04:20:56 ]
VC++2008でフォームアプリケーションを作成しています。
自動生成されるフォームの中に動的にラベルを複数作成しているのですが、
作成されたラベルのクリック時のイベントハンドラが全て同じイベントを呼び出す場合、
クリックしたボタンを判別し、その名前や座標などを表示させたいのですが、
以下のクリックイベントにどのようなプログラムを入れたら良いでしょうか?
もしよろしければ教えて下さい、お願いします。
private: System::Void node_Click(System::Object^ sender, System::EventArgs^ e)
{
}
また、もし他の方法で良いものがありましたら、教えて下さい。m(__)m



47 名前:デフォルトの名無しさん [2009/03/02(月) 06:37:22 ]
>>45わかりました。ありがとうございます。

48 名前:デフォルトの名無しさん [2009/03/02(月) 06:55:04 ]
Senderみつおに聞けば教えてくれる

49 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 10:35:58 ]
ナハナハ

50 名前:40 mailto:sage [2009/03/02(月) 20:13:26 ]
>>44
ありがとうございます。
では標準C++でコンソールアプリケーションを作りたいときは
プロジェクトの種類
をWin32にして
Win32 コンソール アプリケーション
にすれば良いですか?


51 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:01:10 ]
訊く前にマニュアル読むなり試すなりしなさい

52 名前:40 mailto:sage [2009/03/02(月) 22:09:19 ]
>>50
とりあえずそれでやってみて問題無いようです。
おそらくコレで良いということですね。

53 名前:40 mailto:sage [2009/03/02(月) 22:10:02 ]
安価間違えました。
>>51


54 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:00:52 ]
>>46
>クリックしたボタンを判別し、その名前や座標などを表示させたいのですが、

仮引数のsenderにそのクリックされたボタンが参照されてる

55 名前:デフォルトの名無しさん [2009/03/06(金) 03:12:17 ]
C++スレで質問したら環境依存だと教えてもらったのでこっちで質問させてください

以下コピペになりますがよろしくお願いします。

ぐぐってもドキュメント見てもわからなかったんで
助言頂けると非常に助かります。
VC++2008ExpressEditionを使用しているので、どこかを変更しなければいけないのか…


質問の内容は…
猫でもわかるプログラミングSDK第123章
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_123.htm

これと同じプログラムを組んでも、WndProc内でcase IDM_READの
hMapFile2 = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "Kumei's Object");
のOpenFileMappingがNULLを返してくるんだけど
原因がまったくわかりませんorz


56 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:37:12 ]
CreateFileMappingが失敗してるか確かめろ



57 名前:デフォルトの名無しさん [2009/03/06(金) 14:00:07 ]
>>56
CreateFileMappingは成功してると思います。
if (!hMapFile1)の部分にも引っかからず、GetLastErrorでも0を返してきましたので…

58 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:39:40 ]
>>57
OpenFileMappingの後のGetLastErrorは何を返す?

59 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:48:29 ]
それが…
CreateFileMappingは0を返して正常だといってるのに
OpenFileMappingの後のGetLastErrorは2を返してきて…
指定されたファイルが見つかりませんと。

60 名前:55 mailto:sage [2009/03/06(金) 15:25:36 ]
55です。長時間悩み、調べ
自分のタイプミスからマッピングオブジェクトの名前の不一致など疑い
試行錯誤した結果…

CloseHandle(hMapFile1)をコメント化し、無効にすると
OpenFileMappingが成功しました。
たぶん解決の糸口になるのでCloseHandleなどのタイミングなどを
調べていけばいいかなという結果に。。。

アドバイスをくれた>>56,>>58さん、サンクスでした


61 名前:デフォルトの名無しさん [2009/03/06(金) 22:54:18 ]
VC++2008EEでcout<<" "<<endlはどうやって使うのでしょうか?


62 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:00:27 ]
普通はそんなの使わない

63 名前:デフォルトの名無しさん [2009/03/06(金) 23:03:23 ]
>>62
普通はどんなものを使うのですか?
手元の本はそれを使った説明ばかりなもので・・・

64 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:15:40 ]
>手元の本はそれを使った説明ばかりなもので・・・
使い方は、その本の最初のほうに書いてある。
書いていなかったら、そんな本は参考にならんから捨てろ。

65 名前:デフォルトの名無しさん [2009/03/06(金) 23:53:50 ]
>>64ありがとうございました。
一応捨てずに残しておきたいと思います

66 名前:デフォルトの名無しさん [2009/03/06(金) 23:56:42 ]
質問です。Visual C++ 6.0のSpy++に付いている
ウインドウファインダーコントロール
(ドラッグしてディスプレイ上の任意のウインドウを選択するヤツ)
はVC++6.0のActiveXコントロールにないのでしょうか。
またはそれに似たツールなどはどこかにありませんでしょうか



67 名前:デフォルトの名無しさん [2009/03/06(金) 23:59:10 ]
www.codeguru.com/cpp/controls/controls/article.php/c2149#more
ありました、失礼しましたm(_ _)m

68 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:24:52 ]
>>65
もし、その本に#include <iostream.h>とか書いてあるんだったら捨てるべき。古本屋でもいいけど。
それは古代のものだからVisual C++ 2008には搭載されていないというだけのこと。

69 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 07:04:19 ]
マウスがのってるウインドウ選択するの意外に簡単だな
WindowFromPoint だけ知ってれば作れる

70 名前:デフォルトの名無しさん [2009/03/07(土) 19:49:30 ]
>>66-67の者です。
Spy++と同等のウインドウ選択ツールもどきは無事使うことが出来ました。
しかし選択後(ウインドウ上でマウスを放した後も)
選択されたウインドウの周囲には枠の表示が残ってしまうので、
それをなんとか消したいと思っています。

選択されたウインドウハンドルが手にはいるので、
::SendMessage(選択されたハンドル,WM_PAINT,0,0); なり
::SendMessage(選択されたハンドル,WM_ERASEBKGND,0,0); なり
いろいろメッセージを送ってみたのですが、なぜか消えてくれません。
Spy++を利用して選択ウインドウにメッセージが送られていることは確認しているのですが・・・
この原因について見当の付く方教えてください。お願いします。

71 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:04:17 ]
表示ができたものを消せないわけがない

72 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:10:44 ]
>::SendMessage(選択されたハンドル,WM_PAINT,0,0);
>::SendMessage(選択されたハンドル,WM_ERASEBKGND,0,0):
どちらもトリガーになるものがないと働かないメッセージだと思うが。

::InvalidateRect() とかのね。



73 名前:デフォルトの名無しさん [2009/03/07(土) 21:42:36 ]
InvalidateRect(ハンドゥル,NULL,TRUE);
で出来ました^^)
どうもありがとう!

74 名前:デフォルトの名無しさん [2009/03/07(土) 22:13:36 ]
エディットに関連付けたスピンボタンについて。

pSpin->SetRange(-10, 10);
pSpin->SetPos(0);

とやっても、0が表示されないんだけど仕様??
SetPos(1)やSetPos(-1)は表示されるんだけど。。。

75 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:20:59 ]
C++勉強してみようと思うんですけど取り合えずは猫でも分かる〜を全部終わらせてみるってのが良いでしょうか?

76 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:24:25 ]
2Dシューティングゲームを作っているのですが、クラスの扱いに困っています。
敵の弾クラス(cBullet)を用意したのですが、それをうまく活かせません。
敵がそれぞれcBullet Bullet[100]といったように個別に弾を持ったのでは効率が悪い気がします。
一括して管理したいのですが、どういう構造にするとよいのでしょうか。



77 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:32:16 ]
>>75
自分がわかりやすいと思ったとこを参考にすればいい。
そこのやりかたが絶対唯一じゃないことさえ認識していればなんとかなるでしょ。

78 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:36:00 ]
>>76
自分の思った通りにやってみればいい。
画面上に存在できる弾の数だけグローバルで配列持ってもいいし。

79 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:45:14 ]
>>78
なるほど、まずはそれでやってみます。
ありがとうございました

80 名前:75 mailto:sage [2009/03/08(日) 20:32:46 ]
猫でも分かるー見てやってみたら最初っからつまづいた
VC++2008EEで説明してるサイト教えてもらえませんか・・・

81 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:03:39 ]
VCは初心者向けの情報は少ないし、あっても古い。
もしかしたらあるかもしれないが初心者用のサイトなんか興味ないから知らん

82 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:30:43 ]
>>75
自分が作りたいと思ったものを作ってみるのが一番の勉強法

83 名前:デフォルトの名無しさん [2009/03/09(月) 00:38:45 ]
いや、それよりvc2008eeは入門サイトほとんど駄目だからつらいな
.netフレームワーク使うとこうなんのか?
スタンダード金出せば猫さん家も役に立つが
ソフトに金払う余裕ないだろうなぁ

84 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 06:38:38 ]
スタンダード金出さないと使えないのはMFCとリソースエディタ
win32なら無料で使えるから猫が全然使えないわけじゃない
ただあそこは古すぎるからコンパイルエラーぐらい自力で解決できないと無理

85 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 10:04:00 ]
ダイアログエディタが使えないのはちときついかな。
入門探すより、自分であれこれいじってみては。

86 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:25:22 ]
>>84
なあ古すぎる癖にシェアウェアとか猫はふざけてるよな



87 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 13:16:02 ]
VCEEで勉強するときは
#pragma warning(disable : 4996)

Unicode
あたりの情報は必須だな

そして、WinAPIでまた引っかかるとw

88 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:09:59 ]
VCEEって、セキュリティが強化された関数は使えないのか?

89 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:11:19 ]
使えるけどその関数を使った例題がほとんどないからでしょう

90 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:33:00 ]
すみません、どなたか教えてください

親クラスA、子クラスBともに仮想関数func()が実装されているとします

この時Aクラスのポインタ(A* pA)にBクラスのインスタンスのポインタを代入し
pA->func()
を呼び出した場合クラスAとBどちらのfunc()が呼ばれるのでしょうか

会社で実験しようと思ったんですが残業規制のせいで調べられなかったんでご存知の方ご教示くださいm(__)m

91 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:36:29 ]
C++の質問ならC++スレでした方がいい

92 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:40:32 ]
クラスA

93 名前:90 mailto:sage [2009/03/09(月) 18:43:24 ]
自己解決しました
クラスBですね

>>91
すみませんでした

94 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 20:58:33 ]
環境
VisualC++.NET(2003)

MFCを使ったアプリケーションを作っています。
フォームにエクセルのような格子で区切られた表のようなコントロールを貼り付けたいのですが
Webで調べてMicrosoft DataGrid Control 6.0とかMSFlexGridを使えばいい野ではないかというところまでは分かったのですが、

・MSFlexGridなんてものが.NET frameworkコンポーネントにもCOMコンポーネントにも存在しない。
・.NET frameworkコンポーネントにDataGridがあるが、そもそも初めからチェックが入っている。
 それなのにツールバーには表示されてない。
 一旦チェック外して再びチェックしなおすとツールバーにそれらしきものが追加されたが非アクティブになってて使えない。
・そもそも.NET frameworkコンポーネントの中はほぼ全部チェックが入っているのに
 ツールバーに一切無いのが理解出来ない。
・一度間違えてデフォルトの「ボタン」のコントロールをツールバーから削除してしまったので、
 COMコンポーネントから探したが同じものが無かった(プロパティが別物だった)
 アイテムの追加と削除ダイアログでリセットボタンを押して直す事が出来たが、
 デフォルトでツールバーにあるアイテムはCOMコンポーネントじゃないなら一体何者なのか?

行き詰っています。どなたか教えていただけないでしょうか?

95 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:12:11 ]
>>94
noribeat.s38.xrea.com/developer/03031501.html

96 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:45:10 ]
>>95
ありがとうございます。

ですがリンク先の指定どおりにActiveXの挿入を行っても、
Microsoft FlexGrid Control, version 6.0が選択肢の中にありません。




97 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:56:19 ]
>>94
そこらへんのVBランタイムを入れるとついてくることが多い。
MSFLXGRD.OCX入りのVB6ランタイムを探すんだ。

あとはこれで。
support.microsoft.com/kb/318597/ja

98 名前:94 mailto:sage [2009/03/09(月) 23:10:50 ]
自分のPCを検索して見ましたがMSFLXGRD.OCXは存在しないようです。
あと実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない
(自分ですらめんどくさいのにもっと素人なら嫌気がさしてやめてしまうかもしれない)
のですが、そうなるともう自力でピクチャーボックスに描画するような形で作るしか無くなってしまうのでしょうか?


99 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:40:09 ]
ブラウザのActiveXコントロールと同じだからインストールは楽だよ

100 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 01:45:05 ]
>実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない
ソフトのインストール時にREGファイルを食わせてやればいいだけ。
それをユーザに強いたら・・・そりゃダメだよな。

ま、Windowsの文字コード表程度の表なら、自前で作っても手間はそんなにかからないがね。

101 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:07:09 ]
VC++2005でMFCアプリに名前空間名に"interface"って使えない?
c2059というコンパイルエラーになる。
/clrオプションは使っていないし、
非MFCアプリやstdafx.hをincludeしないとコンパイル通るし
C++/CLIで予約語になってるeventとか他の単語は
使えるから単なるバグですかね?

102 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:21:37 ]
最近変なやつ多いな
同一人物?

103 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:29:53 ]
>>101
COM関係のヘッダのどれかで、#define interface structと定義されている。

104 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:05:33 ]
#include <stdio.h>
int main(void)
{
printf("Hello!\n");
return 0;
}

#include <iostream>
int main()
{
std::cout <<"Hello!" << std::endl;
return 0;
}

見るサイトによって書き方が違うけど結果は似たようなのがでるんですけど
これはどういう違いがあるんですか?

105 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:15:37 ]
C/C++

106 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:26:37 ]
>>105
どっちがCでどっちがC++?



107 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:31:56 ]
ggrks

108 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:45:52 ]
スレを勃てるまでもないC/C++の質問はここで 8
pc11.2ch.net/test/read.cgi/tech/1235921779/

109 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:22:28 ]
>>106
上がCで下がC++

110 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:45:27 ]
Visual Studio 2005 Vistaです。
6つのピクチャボックスに表示させた6枚の画像
(横3枚の2段)から1枚を選択(ダブルクリック)して、
選択した画像を左上のピクチャボックスの表示し、
選択した以外の画像は消去する、
といったことはどのようにして実現できますでしょうか。

111 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:33:54 ]
表示と消去ができるならクリックしたタイミングで好きなようにやればいい

112 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:55:36 ]
>>110
・6つのピクチャボックスに SS_NOTIFY スタイルを付加する。
・あとは STN_DBLCLK メッセージが通知されたときに、親ウィンドウに対して
 InvalidateRect( NULL) を投げればいい。

それが 「初期の描画なのか」 「ダブルクリック後の描画なのか」 「どれが選択されたのか」
を判断する仕組みは、当然必要だがね。

113 名前:110 mailto:sage [2009/03/12(木) 18:40:15 ]
>>111 >>112
アドバイスありがとうございます。
なんとかできました。

114 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:10:04 ]
VisualC++.NET(2003)を使ってます。

今まで作ってたソリューションをセカンドマシンでもいじるために

 メインマシンの共有フォルダにソリューションのフォルダごとコピー
 ↓
 セカンドマシンにブリーフケース作ってそのフォルダを持ってくる。

という風にしようとしたのですが、メインマシンのソリューションをコピーした段階で
元々正常にビルドできて実行できてたものが正常に動きません。

コピー先ソリューションの動作
@開始ボタンを押すと毎回「プロジェクトの構成が変更されています。ビルドしますか?」のダイアログが出る。
・@でいいえを選ぶと何事も無く動く
・@ではいを選ぶと元々出なかったエラー「ビルドエラーが発生しました。続行しますか?」というダイアログが出る。
・BuildLog.htmを見ると 'CDHtmlDialog' : 定義されていない基本クラスが宣言されています。などを筆頭に
 ずらずらとエラーが出ている。
 これは元のフォルダでは出ない。

初心者でソリューションの構成ファイルなどのどこかに絶対パスがあるのか、見当も付きません。
プログラム自体は絶対パスを指定するような部分は有りません。
どなたか、解決のヒントでも教えていただけないでしょうか?

また、個人で2PCでプログラム開発する場合VSSのような物(多分有料ソフトですよね?)
を使わずに同期とったりバージョン管理する良い方法があれば教えて頂けないでしょうか?


115 名前:114 mailto:sage [2009/03/13(金) 20:48:02 ]
もう一度やってみたら上手くいきました。

何故なのか分かりませんが一回目にやったコピーでファイルがおかしくなっていたのかもしれません。


116 名前:791 + 792 mailto:sage [2009/03/13(金) 22:48:32 ]
エラーUZEEEEEEな状態助けてくださいな。

#include "stdafx.h"
#include <iostream>

int main()
{
int a;
int b;
int r;

cout << "割られる数は?(整数)";
cin >> a; // ここで数値を読み取っている
cout << "割る数は?(整数)";
cin >> b; // ここで数値を読み取っている
r = a % b;
cout << "割った余りは" << r << "だよ" << endl;
}

エラーはrror C2065: 'cout' : 定義されていない識別子です。
こんなのが endlだったりcinだったり6個あった。
ソースおかしい?



117 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:54:19 ]
>>116
名前空間(namespace)について勉強しろ

118 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:05:18 ]
>>116
stdafx.h を開いて

using namespace std;

と書け。

119 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:15:13 ]
>>118
それやっちゃうと名前空間を定義してる意味がなくなるので
あまり人にすすめることではないかと…


120 名前:791 + 792 mailto:sage [2009/03/14(土) 00:12:02 ]
ますます訳が分からなくなった。
namespaceで何処を囲えば良いのかさっぱり。
どこかで名前が被ってるからnamespace使えってことで合ってるんだよね?
知らない間にエラーが102個に増えた。

何処が駄目で何でnamespaceが必要なのかまだ理解できてない俺・・・

121 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:22:36 ]
ttp://homepage2.nifty.com/well/FirstProgram.html

stdafx.hなんて捨ててしまえと思わなくもない

122 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:39:30 ]
>>120
要は、std という名前空間をどこで使いたいか、だ。
int main() のなかだけで使いたいなら int main() の中に書けばいい。
int main() の書かれている cpp ファイルの中で使いたいなら、#include <iostream> の下あたりに書く。
いつでもどこでも使いたいなら stdafx.h に書く。(このときの注意点は >>119

123 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 05:28:15 ]
バカみたいな質問で申し訳ありません。猫でもで勉強してて今まで、VC++2008でCの勉強をやってたんですが、C++をやり始め、

1>.\ex01.cpp(1) : fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory

というエラーが出ました。これはiostream.hが標準ライブラリにないという事ですよね。
色々、ググってみたんですが、標準ライブラリの宣言で躓くなんてバカな奴はいないのか、
どこでダウンロードするのかどうやって標準ライブラリに追加するのかさっぱりわかりません。
教えていただけると助かります<m(__)m>

124 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 06:53:08 ]
C++初心者用のスレへ行った方がいい

125 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:21:13 ]
>>123
<iostream.h>は昔の存在。だから最近のVisual C++には入っていない。
<iostream>をインクルードして、coutとかcinとかはstd::cout、std::cinなどのようにstd::を付けろ。
詳しくは最近の入門書を読め。

126 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:57:31 ]
拡張子を.cppにしたときから
インクルードファイルは全て.h抜きを覚悟すべきだな



127 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 08:24:13 ]
>>123
猫でも…(ryは、難点として、標準ライブラリのインクルードがおかしいってのがある。
あきらめて書籍買え。その方が実りあるよ。


128 名前:791 + 792 mailto:sage [2009/03/14(土) 10:31:41 ]
int main(){
using namespace std;にしたら下のエラーが出たけど、ググったら解決した。
コンソールアプリケーションでプロジェクトを作らないと下のエラーが出る見たいだから
プロジェクトを作り直してやったらすんなり。
MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
C:\Documents and Settings\Nanashi\My Documents\Visual Studio 2008\Projects\null1\Debug\null1.exe : fatal error LNK1120: 外部参照 1 が未解決です。
まだnamespaceの意味プーだけど、>>121が教えてくれたサイトを見たりして
理解できるようにがんばる
>>122もありがとう,助かったよ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef