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


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

VisualC 相談室【8】
1 名前:いさましいおsageの女の子 :02/05/27 20:30
VisualC++関連の話題を扱うスレッドです。

前スレ
http://pc.2ch.net/test/read.cgi/tech/1017843192/l50

2 名前:デフォルトの名無しさん :02/05/27 20:31
萌えない

3 名前:デフォルトの名無しさん :02/05/27 20:38
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | <  >>1 Visual C って何
   \|   \_/ /  \_________________
     \____/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′


4 名前:デフォルトの名無しさん :02/05/27 20:39
関連スレ
C Builder相談室 Part3
http://pc.2ch.net/test/read.cgi/tech/1016065855/

5 名前:デフォルトの名無しさん :02/05/27 21:21
VC++スーパービギナー編買え

6 名前:デフォルトの名無しさん :02/05/27 21:48
>>5
そんなもの買うな!
俺がおまえらのためにVC++の本を執筆してやる!

7 名前:デフォルトの名無しさん :02/05/27 21:58
「小学生に1から教える Visual C++.NET」児童教育シリーズ
熊谷 紳助 (著) 翔泳社 ISBN: 4156215470

8 名前:デフォルトの名無しさん :02/05/27 22:04
そんな本があるのか、鬱だ

9 名前:デフォルトの名無しさん :02/05/27 22:07
>>7
おまえは無い。あっても言うな。

10 名前:デフォルトの名無しさん :02/05/27 22:12
>>7
紀伊国屋で見かけたが、分厚いハードカバーだぞ。
読むのも大変だが、小学生じゃ持つだけでも大変だ。

11 名前:デフォルトの名無しさん :02/05/27 22:15
>>8以外信じないってば。

12 名前:デフォルトの名無しさん :02/05/27 22:16
>>10
マジメに小学生までプログラミング人工が広がっていくことが鬱でしょうがない

13 名前:デフォルトの名無しさん :02/05/27 22:22
割れ小学生は、実際使ってる。

14 名前:デフォルトの名無しさん :02/05/27 22:30
数年後には義務教育にCプログラミングが導入

15 名前:デフォルトの名無しさん :02/05/27 22:34
そりゃー、ない。

16 名前:うんこまんこ :02/05/27 22:58
C言語でゲームを作ろうと思うんだけど
ウィンドウに線を引いたり色を塗ったりする方法がわかりません。
どうしたらいい?

17 名前:デフォルトの名無しさん :02/05/27 23:00
c言語だけじゃ出来ません

18 名前:うんこまんこ :02/05/27 23:01
VCで出来ないの?

19 名前:デフォルトの名無しさん :02/05/27 23:07
>>16
LineTo

20 名前:うんこまんこ :02/05/27 23:33
>>19
ヘッダーは?

21 名前:デフォルトの名無しさん :02/05/27 23:42
windows.h

22 名前:うんこまんこ :02/05/27 23:45
>>21
どうもありがとう

23 名前:うんこまんこ :02/05/27 23:50
USBに繋いだコントローラを使ってゲームを作りたいんだけど
どうしたらいい?

24 名前:デフォルトの名無しさん :02/05/27 23:53
>>23
DirectInput。
調べてもわかんなかったらここで質問して。
鬱だ氏のう DirectX 2
http://pc.2ch.net/test/read.cgi/tech/997101556/

25 名前:デフォルトの名無しさん :02/05/27 23:57
ダイレクトX?
VCとダイレクトXって同じなの?

26 名前:デフォルトの名無しさん :02/05/27 23:58
って言うかダイレクトXって何?

27 名前:デフォルトの名無しさん :02/05/27 23:59
あ、25と26は俺です。

28 名前:デフォルトの名無しさん :02/05/28 02:55
あらかじめ設定されたピクセル値のbmpファイルだけしか読み込めないようにするには
BITMAPINFOHEADER使えば良いのかな?

その際にFileDialog使っちゃダメそうだな。自分で作れと。

29 名前:デフォルトの名無しさん :02/05/28 03:16
意味不明

30 名前:仕様書無しさん (O_O)/ :02/05/28 06:48
そうやって、
やる気のある人と、やる気の無い人を一緒くたにするのは素人の証拠。
何ひとつ作り出せない人は、憎しみだけを作り出し、
憎しみしか作り出せない人間は、他人の生産性までをもとことん下げる。
やる気がある人間はその限りではない。

31 名前:デフォルトの名無しさん :02/05/28 06:55
HSPスレかと思ったYO!

32 名前:デフォルトの名無しさん :02/05/28 07:04
Visual C相談室になってから一気にレヴェルが下がっていませんか?

33 名前:仕様書無しさん (O_O)V :02/05/28 07:08
>>28
ListViewです。>FileDialog
LPITEMIDLIST取れます。>FileDialog
牡丹桜花イベントあるはず。>FileDialog

34 名前:Operaテスト :02/05/28 07:08
自分の生産性が低いのを人のせいにしたがってる人がいますね(・_・)

35 名前:OperaテeテXテg :02/05/28 07:09
ばけばけ?

36 名前:仕様書無しさん (O_O)V :02/05/28 07:09
却下(W

37 名前:仕様書無しさん :02/05/28 07:47
>>28
そういう事する時はJava使え

38 名前:デフォルトの名無しさん :02/05/28 11:19
_UNICODEでコンパイルすると__FUNCTION__が使えなくなります?(VS.NETにて)

39 名前:デフォルトの名無しさん :02/05/29 22:01
前スレでも質問したんですが、レスが無かったものでもう一度。
VC++.NET standardにはC++ Language Referenceの日本語版は
付いていないのでしょうか。
explicitやtypename検索しても英語しか出てこないもので。
それとも、設定が変で出てこないだけでしょうか?

40 名前:デフォルトの名無しさん :02/05/29 23:02
MSDNのトピックの設定が日に日に可笑しくなっていき、現在では全て同じになって
しまいましたが、どうすりゃ良いんでしょう?これ。

41 名前:デフォルトの名無しさん :02/05/29 23:07
ドラッグアンドドロプしたいのです。
それでコントロールのプロパティでドラッグアンドドロップを許可したのに、クラスウィザードのメッセージ一覧に出てくれないのです。
どうやるですか?

42 名前:デフォルトの名無しさん :02/05/29 23:19
>>41 クラス情報タブのメッセージフィルタを「ウインドウ」に設定。

43 名前:デフォルトの名無しさん :02/05/30 00:02
>>40
次のMSDNを待って、届いたらインストールしなさい。


44 名前:41 :02/05/30 11:15
メッセージフィルタを「ウィンドウ」に設定したくても、
灰色になってて設定できませんでした。
厨房向けのソフトでむりやり変更したら、VC++が落ちました。痛いです。
ダイアログアプリだからダメなのでしょうか?

45 名前:デフォルトの名無しさん :02/05/30 11:24
>>44
あきらめて自力で

46 名前:デフォルトの名無しさん :02/05/30 12:30
>>40
ああ、設定が狂ってくるという意味ね。
楽しそうで良いではないかと思ったよ。

47 名前:デフォルトの名無しさん :02/05/30 13:06
ツールバーに大きめのテキストボックス埋め込みたいんですが、どうすればいいですか?

48 名前:デフォルトの名無しさん :02/05/30 13:19
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数:105420人 発行日:2002/05/020

どもども、ちょっぴりワキガのひろゆきですー。
いやぁ、もうすぐですねー、谷澤動物病院の裁判の判決ですー。。。

おいらはいつものとおり、
「投稿者がわからないので勝手に削除は出来ない」
「勝手に削除したら投稿者に訴えられてしまうかも知れないから削除は出来ない」
との主張を繰り返してきたんですけど、裁判官てば実に冷ややかな目でおいらを見るんですよー。。。
その上、
「削除出来ないんじゃなくてするつもりがないんじゃないですか?」
「悪質な書き込みをむしろ売り物にしてるんじゃないですか?」
「発信者を特定出来るようにようにしてから屁理屈を語ったらどうですか?」
なんて嘲りの笑みを浮かべながら言うんですよー。。。
本当に憎らしい奴ですー、、うぅうぅ、、

ところで、谷澤動物病院てば、おいらのことを訴えてから客が2割も減ってしまったそうですー。。。
おいらのことを訴えると被害が余計に拡大するってことですね。。。えへへ。。。

んじゃ!

49 名前:デフォルトの名無しさん :02/05/30 18:52
VC++ でコンパイルするときに、
MFCを使用すると、
(プリコンパイルヘッダを使用すると?
 よくわからないけど。)

#include "stdafx.h"

までの全ソースコードを無視するらしいのですが、
どうしてでしょうか?
移植を行うときなどにとても不便ではないかと思うのですが……。

50 名前:デフォルトの名無しさん :02/05/30 20:03
>>49
#include "stdafx.h"
を先頭に置けばいいやん

51 名前:49 :02/05/30 22:22
>>50

「移植」のとき等に不便だと思うわけです。
別の環境で書いたソースコードを再利用するときに、ファイルにいちいち #include "stdafx.h" を付け加えなければならないわけですよね?
あと、開発したソースコードを別の環境でも再利用するとしたら、"srdafx.h" のないところに移すわけだから、#include "stdafx.h" を削除しなければなりませんよね?
(たとえ関連クラスがMFCを使用していないものだとしても……。)

と思ったわけですが、どうでしょう……。

52 名前:デフォルトの名無しさん :02/05/30 22:46
>51
別の環境で書いたものを使う時には、プリコンパイルヘッダを使わないようにする。
別の環境に持っていく時は、空のstdafx.hでも作っとけ。

53 名前: :02/05/31 16:49
VCに直接関係ないのですが、
VCを入れたら、IEなどでエラーが発生した場合、
デバックが始まってしまうのですが、これを行わないようにするにはどうしたらよいのでしょうか?

54 名前:デフォルトの名無しさん :02/05/31 16:55
>>53 ツール→オプション→デバッグ→ジャストインタイムデバッグ

55 名前: :02/05/31 16:55
>54
サンキュー!!!

しかし、チェック外したけど駄目でした・・・。ふぅー。

56 名前:デフォルトの名無しさん :02/05/31 18:32
デバッグして、サイト運営者に報告してやれば、そのうち
でなくなるぞ。

57 名前:デフォルトの名無しさん :02/06/01 00:47
>>51
PCHを使わなければいいだけでは…?

58 名前:デフォルトの名無しさん :02/06/01 01:00
>>53
IEのインターネットオプション>詳細設定>スクリプトのデバッグがどうたら

59 名前:デフォルトの名無しさん :02/06/01 08:22
他スレ(MFCの方)でちょっと関連する話が出てたのですが、スレ違いみたい
なんでこっちで質問します。

mfc42.dllを使用するかMFCのスタティックライブラリを使用するかは選択
できるみたいですが、Cのランタイム?のmsvcrt.dllの扱いっていうのは
どうなのでしょうか?
作成した実行ファイルの中をダンプしてみるとmsvcrt.dllという文字列
が存在するので使われているようなのですが、外部DLLに完全に依存しない
実行ファイルというのは作成できるのでしょうか?
もしかしたら、msvcrt.dllが存在しない32bitWindows環境は存在しない
から気にしなくてもいいとか?


60 名前:デフォルトの名無しさん :02/06/01 10:34
扱い(VC6)
プロジェクト→設定→C/C++→使用するランタイムライブラリ
で選択できる。

> 外部DLLに完全に依存しない実行ファイルというのは作成できるのでしょうか?

kernel32.dllは必ず使うことになるから、OSが提供するDLLを含めるかどうかでその
答えは変わる。mfcのdllやmsvcrtのdllはOS提供ではないと言っていいと思う。


61 名前:59 :02/06/01 11:10
>>60
失礼、書き方が悪かったですね。
「VC++6.0提供の外部DLLに依存しない...」に訂正。
レス、ありがとう。


62 名前:デフォルトの名無しさん :02/06/01 12:52
教えてもらえるか全く未知数なんだけど、相談に乗ってください。
VBで「Dim WithEvents obj???? 〜」って宣言すると、COMコンポーネントの
イベントを受け取れるじゃないですか。
このコンポーネントをVCで動かそうとしています。
VBで出来る事がVCで出来ないわけがないと思っていましたが、いわゆる
インタフェイスクラス側のインプリメントは簡単に出来るんですが、
イベントハンドラ側がうまく実装できません。
タイプライブラリを指定して同コンポーネントのクラスを自動生成させた
のですが、ヘッダファイル上でプロトタイプを確認すると、「引数の型が
あいまいでメンバを実装できません」みたいな表示がされて、イベント
ハンドラが加えられていません。ここでひとつ質問。

1、vテーブルが存在するものとしてviatual宣言の上メンバ関数を書き加えて
意味があるのでしょうか。

そこからイベントをキャッチする場合、

2、生成されたクラスを派生させて、イベント割り当て関数をオーバーライド
すれば、イベントをキャッチできるのでしょうか?

インタフェイス側のクラスはCoRegisterClassObject関数でハンドシェイク
出来ましたが、イベントハンドラ側は「クラスがない」といった風なエラー
が発生します。

3、COMコンポーネントの設計の問題でしょうか?それともクライアント側の
コーディングの問題でしょうか?それとも他に?

COMコンポーネント側もある程度ソースレベルでの融通が効きます。
以上3点の解決について知恵をいただければと思います。
よろしくお願いします。

63 名前:デフォルトの名無しさん :02/06/02 01:54
 今までおもにJava使ってきたんですけど、都合によりVC++を使うことになりました。
そこで,MFCを勉強していたんですが、Win32 APIをほとんど知らないせいか
まったくわけがわかりません。
 そこで、VC++で利用できるよいGUIのクラスライブラリがあったら教えていただけないでしょうか?
できれば、Win32 APIの知識がなくても理解できて、Javaのクラスライブラリに似ているのがいいのですが。


64 名前:デフォルトの名無しさん :02/06/02 01:59
MFCしか・・・

65 名前:デフォルトの名無しさん :02/06/02 02:08
Managed C++にすれば?
APIを知らずに書けるツールキットでマトモなのは
QTやGtkとかあるけど、全然Javaっぽくないし。

66 名前:デフォルトの名無しさん :02/06/02 02:10
俺はMFCから入ったけど初めのうちはWin32APIの知識って無くても
できるんじゃ・・・

67 名前:デフォルトの名無しさん :02/06/02 02:23
>>66
メソッドなどがほぼそのままAPIをラップしただけなので
MFCの知識≒APIの知識となる

68 名前:デフォルトの名無しさん :02/06/02 02:31
>>67
いや、だからWin32API自体使ったこと無くても
MFCメンバ関数使えばできるだろうと。
というか>>63はWin32APIやMFCというよりWindowsプログラミングが
わからないんじゃ?
Win32APIやMFCはリファレンス読めば使えるわけだから。


69 名前:63 :02/06/02 03:10
たくさんのレスありがとうございます。
UNIXでCの通信系プログラムを経験した後、Javaにうつったので
Windowsプログラミングの経験はまったくありません。
やっぱり覚悟を決めてWindowsプログラミングの基礎から勉強するしかなさそうですね。

しかしMFCってすごく使いにくいように思うんですけど、慣れると使いやすいんですかね。

70 名前:デフォルトの名無しさん :02/06/02 04:11
お仕着せのはお気楽にできるが、
色々こったものを作ろうとすると、MFCの枠からはみ出た
コードを書かなければいけなくなる。


71 名前:デフォルトの名無しさん :02/06/02 10:05
IDC_RADIO1というIDでラジオボックスを作っているのですが、
これを操作するためには例えば
RADIOBOXというクラスで
RADIOBOX radiobox1,radiobox2
としたradiobox1というものが必要だと思うのですが、これがソースのどこを捜しても見当たらないのです。
ラジオボックスの操作方法等でアドバイスください。

72 名前:63 :02/06/02 10:30
Class Wizardでメンバ変数タグをクリックして変数の追加じゃだめですか?

俺もここらへんでずいぶん悩みました。へたにリソースエデイタで
コントロール追加するよりコードで追加したほうが早そうなきがするんですが
皆さんはどうされてますか?

73 名前:デフォルトの名無しさん :02/06/02 10:49
VC++で何を作ればいいですか?

74 名前:デフォルトの名無しさん :02/06/02 10:52
作りたいものがありません。
プログラムがしたいのです

75 名前:デフォルトの名無しさん :02/06/02 10:55
>>74
自分で作るものぐらい自分で考えれや……
しかたない、とりあえず練習問題がある入門書を買って
練習問題解きまくれ。

76 名前:49 :02/06/02 12:18
>>52 >>57
対処法はわかるのですが、なんでこのような仕様にしたのかなーと思いまして。何か深い理由があるのかと。
とはいえ、アドバイスありがとうございました。

77 名前:デフォルトの名無しさん :02/06/02 12:48
>>72
ラジオボタンだと先頭の1個しか変数作らせてくれないという罠
(だから2個目以降は手作業でコピペ)。

ちなみにわざわざ変数を作らなくても、IDを使って
GetDlgItem(IDC_RADIOBUTTON1)->ほげほげ
とかで何とかなる。


78 名前:デフォルトの名無しさん :02/06/02 12:55
>何か深い理由があるのかと。
それ以前に取り込んだヘッダの仕様が変わって、
#defineされた定数値が変更になったりすると矛盾が生じるから

79 名前:デフォルトの名無しさん :02/06/02 13:42
VS.NET での話なのですがWM_TIMERとかのメッセージ処理をGUI的(ClassWizard的)に
管理するにはどうしたらよいのでしょう?
いまは良く分からんのでMESSAGE_MAPに直書き・・・

80 名前:デフォルトの名無しさん :02/06/02 14:07
Visual C++でデータベースアプリを作るとしたら何を使うのが一般的でしょうか?
やっぱりADO?参考になる資料が見つからなくて困ってます。

81 名前:デフォルトの名無しさん :02/06/02 14:25
80
*.mdb+ADOのときはATLオブジェクトウィザード(データアクセス)で生成させた
コードをそのまま書き換えて使えると思います。
(DAOの方が速いらしいのでまだ使ってますが。)

82 名前:デフォルトの名無しさん :02/06/03 00:14
変更できるサイズがあらかじめ決まっている
ダイアログとかツールバーってありますよね。
VCのドッキングウィンドウとか。
あれはいったいどうやって作っているんでしょうか。

83 名前:デフォルトの名無しさん :02/06/03 00:43
ツールバーの状態(ドッキング位置など)をファイルに保存するには
どうすれば良いのでしょうか。


84 名前:デフォルトの名無しさん :02/06/03 01:41
>>83
GetWindowRect
WritePrivatePrifileString
or WriteFile

85 名前:デフォルトの名無しさん :02/06/03 11:40
>>84
それだと復元時に親ウィンドウが移動してるとツールバーの位置がずれませんか。
あとツールバーのフローティング状態、表示/非表示の状態も
保存しなければならないと思うのですが。


86 名前:83 :02/06/03 13:01
CControlBarのメンバ関数を使う。
座標はクライアント座標になっていると思うので、大丈夫と思う。

87 名前:デフォルトの名無しさん :02/06/03 13:22
>>84,86の方法はツールバーごとにAPIまたはメンバ関数を呼び出す
ものですが、CFrameWnd::SaveBarStateのように
一度呼び出しただけでウィンドウに使われている複数のツールバーを
取得するにはどうすればよいのでしょうか?


88 名前:デフォルトの名無しさん :02/06/03 13:58
CFrameWnd::SaveBarStateを使う

89 名前:デフォルトの名無しさん :02/06/03 14:00
任意のファイルに保存したいってゆってるべや

90 名前:デフォルトの名無しさん :02/06/03 14:11
>>86
GetWindowRectはスクリーン座標だよ

91 名前:デフォルトの名無しさん :02/06/03 14:48
ヴァカばっか。

>>82
WM_GETMINMAXINFO

92 名前:62 :02/06/03 18:40
ATL COM コンポーネントのイベント取得についておうかがいをたてたもの
ですが、方法がわかりました。
ありがとうございました。

93 名前:83 :02/06/03 18:43
GetWindowRectで座標を保存し、DockControlBarにその座標を与えてドッキングを
復元しようとすると、例えば以下のように2つのツールバーが二段になってるとき、

--------------------
| バー2
--------------------
| バー1
--------------------

バー1→バー2の順で保存すると、バー1→バー2の順で復元したときに
二段に復元されません。
なぜなら、バー1を復元しようとしたときにはまだバー2が存在していないため、
バー1は一段目へドッキングされてしまうからです。

94 名前:デフォルトの名無しさん :02/06/03 19:09
>>83 CDockState っていうのはどうよ?

95 名前:デフォルトの名無しさん :02/06/03 22:58
CDockStateのソース見たらかなりいろんなこと保存してる。
GetWindowRectやIsFloatingどころの話じゃないよ……

96 名前:デフォルトの名無しさん :02/06/04 11:09
CStringの偽物のようなクラスを作っていて、
CStringと同じように、
"operator const TCHAR*() const;"というオペレータにて、
クラスの内容(文字列)を返すようにしています。

 大抵、目的の動作をするようになったのですが、

CLieString csData;
csData="Mona";
sprintf( "data=[%s]", csData.operator const TCHAR*() ); /*これは行けます*/
sprintf( "data=[%s]", csData );  /*これは駄目です*/

 というコードだけ、%sが正しく変換されません。
sprintfが、クラス内のバッファをアクセスするための
方法について、教えて頂けると嬉しいです。


97 名前:デフォルトの名無しさん :02/06/04 11:40
CStringのソース見れば?

98 名前:デフォルトの名無しさん :02/06/04 11:47
printf系は可変長引数(引数に型無)だから、キャストを明示しないと(const xxx *)に
変換されない。

蛇足
sprintf()はASCII or MBCSだから(TCHAR *)でなく(char *)
UNICODEを使うときはswprintf()
TCHARのときは_stprintf();


99 名前:83 :02/06/04 11:48
CDockStateのm_arrBarInfo内にコントロールバーの情報が入ってて、
この配列のサイズ及びインデックスがバーの数及びドッキングの順番になると思い
ツールバーが2つドッキングされたウィンドウでm_arrBarInfo.GetSizeを
実行してみるとサイズが7。
あとの5つは何バーなんだ(;´Д`)

100 名前:デフォルトの名無しさん :02/06/04 11:51
ツールバー2個+ステータスバーの分で計3。しかしまだ4つも謎のバーが。

101 名前:96 :02/06/04 12:00
>97
 元々、殆どCStringと変わらない仕様でしたので、
CStringを参考にしながら作っていました。
ただ、非MFCなので、それ自体の派生に出来ませんでしたが。

>98
 TCHARは、(私の環境では)charに変換されているはずです。
とはいえ、自信が無かったのでconst char*にしてみましたが、
やっぱりダメでした。

 printfの引数が形無しなのが根元にあることは分かっているのですが、
その形無し引数に対して、クラスの実態を書いた場合、
クラスのデータメンバの始めが送られたりするのかな・・と邪推しています。

102 名前:デフォルトの名無しさん :02/06/04 12:02
任意のファイルに保存したいなら一時的にCWinAppの
m_pszProfileName<−名前違うかも
を書き換えちゃえば? たしかこれを見てるんだよね。

103 名前:デフォルトの名無しさん :02/06/04 12:12
101
文字列クラス stringClassObject("hogehoge");
に対して
sprintf(buff, "%s", (const char *)stringClassObject );
と書くのは仕方の無いことと思われ。

MFCが使えないの環境ならSTLのstringクラスを使うべきでは?車輪の再発明すぎ。
実習か何かで文字列クラスを作っているなら別だが・・・。

104 名前:デフォルトの名無しさん :02/06/04 12:16
>>101
CStringのソースと見比べれば、何でCStringで出来て、自作のクラスで出来ないかわかるはず。
可変長の引数渡しの仕組み知ってればの話だけど。

105 名前:96 :02/06/04 12:21
>103
単に文字列を扱うだけだと、stringにしたのですが、
CStringやstringに無いメソッドを色々追加しなければならなかったので、
勉強も兼ねて自作していた次第です。

 その後、sprintfの引数を取っている所で止めてみたのですが、
やはり入力クラスそのもののアドレスが行っている感じがする事と、
CStringのデータメンバは文字列ポインタ1つだけだという事と、
自作クラスの方は、現時点で3個のデータメンバを持つ事まで確認出来ましたので、
その情報から、CStringが如何にして、
printfに直渡しをしているのか?というのを知れればと思います。

106 名前:96 :02/06/04 12:24
>>104
 随分長くアセンブラ屋だったので、
C(C++)に関しては素人です。

107 名前:デフォルトの名無しさん :02/06/04 12:41
勉強を兼ねてエディタを作ってるんですが、
無限アンドゥってどうやって実装するんですか?


108 名前:デフォルトの名無しさん :02/06/04 12:45
>>107
リスト構造で操作を記録

109 名前:96 :02/06/04 12:50
一度MFC使用プロジェクトを作って、
CString csTemp;
long lSize = sizeof( csTemp );

 とすると、4bytesとなりました。

非MFC環境と、MFC環境の両方で、

class CTest
{
 char *m_pchData;
}
-----
CTest csTest;
long lSize = sizeof( csTest );

 とすると、8bytes となってしまいました。

クラスの先頭=データメンバ先頭という考え方?でも、
何故自前のクラスに 4bytes が付加されてしまうのか疑問に思い、
とりあえず、CTestとCStringの相違点として、

CString側
~CString();
-------------------
CTest側
virtual CTest();

 となっていましたので、とりあえず"virtual"を外してみた所、
sizeof CTest も4bytes になりました。

 printfの問題は、多分これで正しくでるようにはなりますが、
何も分からない状態でやった為に、技術的後ろ盾が無く、
単に"超危険なコード"と化しているように思います。(^^;

110 名前:83 :02/06/04 15:54
えー、一人でごちゃごちゃやってますが…
新しく作ったCDockState派生クラスに、CDockStateと
その中で使われてるプライベートクラスCControlBarInfoの
ソースを参考にiniファイル読み書き用
メンバ関数を追加することで一応できました。
読み書きはPrivateProfile系APIでやってるので、これを
レジストリAPIに変えたレジストリ読み書き用関数も用意すれば
バーの状態の保存先をファイル/レジストリに切り替えられるクラスが
できてなかなか満足です。
いろいろレスくれたおまえらにありがとうと言いたい。
小一時間言い続けたい。

111 名前:sage :02/06/04 16:04
VC++で使えるJTableみたいなものはありませんか?

112 名前:デフォルトの名無しさん :02/06/04 16:06


113 名前:デフォルトの名無しさん :02/06/04 17:20
C#、C++雑談スレッド
http://pc.2ch.net/test/read.cgi/prog/1023178697/  

114 名前:デフォルトの名無しさん :02/06/05 06:57
メニューアイテムでアクセラレータキーもいっしょに書いてある場合、
(hogehoge\tCtrl+H みたいに)
SetDefaultItemすると、表示がおかしくなってしまうんですが
どうしたらいいでしょうか?

115 名前:デフォルトの名無しさん :02/06/05 07:00
すいません、オーナードロー使ってたんで、
その関係かもしれないです。

116 名前:デフォルトの名無しさん :02/06/05 10:16
for (i=a=b=0;i<100;i++){}
この場合iの初期価値はいくらになるの?

117 名前:デフォルトの名無しさん :02/06/05 10:35
>>116
なんでそういう疑問をもったか、そのあたりの説明をききたい。

118 名前:116 :02/06/05 10:40
>>117
cのコードの移植してるから。

なんかどうも多重ループになるっぽいんだけど。
cじゃあこういう書き方普通なの?訳分からん。

119 名前:116 :02/06/05 10:53
んー、なんかi=0と一緒の結果になるみたいだなあ。
i=0と等価なのかな?違うのかな?等価ならなんで
こんな書きかたしてるんだろ。意味あるのかなあ。

120 名前:116 :02/06/05 10:57
分かった!
i=0;
a=0;
b=0;
と同じ意味なのか!

違ってたら突っ込みキボン。

121 名前:デフォルトの名無しさん :02/06/05 11:01
i = a = b = 0 → i = (a = ( b = 0))と等価

122 名前:デフォルトの名無しさん :02/06/05 11:08
すいませ〜ん。
MFC使ってリストビューにファイルをドラッグ&ドロップしたいのですが
わかりません。方法教をえてください。または、それについて書いてあるHP等教えてください。

123 名前:デフォルトの名無しさん :02/06/05 11:21
http://216.242.20.51/wi/pa/

124 名前:ゆう ◆7WEVo9uA :02/06/06 01:11
>>122
俺も前めちゃ困った。
おれはCListCtrlを派生して
OnDropFilesにコードを実装してる。
間違ってたら修正求む。

125 名前:デフォルトの名無しさん :02/06/06 01:38
俺はOLEドラッグ&ドロップ用のCOleDropTarget派生クラスを作っておいて、
ダイアログのOnInitDoalog()やViewのOnInitialUpdate()で
m_DropTarget.Register(this);
とかやるとD&D可能になるようにしてる。


126 名前:デフォルトの名無しさん :02/06/07 08:08
ATL3.0なんですが、QueryInterfaceをフックしたいので、
COM_MAPにCOM_INTERFACE_ENTRY_FUNCマクロで
フック用スタティック関数を登録したのですが、
全然反映されません。
というかCOM_INTERFACE_ENTRY_XXXの実体である
static const _ATL_INTMAP_ENTRY _entries[]が
どんなにCOM_INTERFACE_ENTRY_XXX追加しても変わらない、
固定されたままなのです。どなたか助言ください。
一応確認は、↓のコードを書いてブレークポイントで見てます。
const _ATL_INTMAP_ENTRY* a = _GetEntries();
a++;
a++;

127 名前:126 :02/06/07 08:14
すいません、解決しました。
お騒がせしました。

128 名前:デフォルトの名無しさん :02/06/09 22:01
飛ばされました。
VC++でプログラミングしているのですが、
ActiveXを登録・削除する方法がまったくわかりません。
わかる方はおられますでしょうか?


129 名前:デフォルトの名無しさん :02/06/09 22:06
regsvr32 xxx.dll
regsvr32 /u xxx.dll

130 名前:デフォルトの名無しさん :02/06/09 22:15
いえ、ocxのほうです。
それから、プログラム上で登録したいのですが…。

131 名前:デフォルトの名無しさん :02/06/09 22:18
regsvr32、ソースあるだろ。
ocxだって、dllの別名にすぎないんだし。

132 名前:デフォルトの名無しさん :02/06/09 22:24
これって結局fixされたんですか?

http://japan.cnet.com/Enterprise/News/2002/Item/020215-3.html?il


133 名前:デフォルトの名無しさん :02/06/10 02:19
ヘッダーのなかで、
extern float *my_allocf();
のように宣言されていて、
mainの中で以下のように使用されているのですが、、
rr = my_allocf(n_split);

で、Cのプログラムでは、ちゃんと動いたんですが、
VC++(ダイアログベース)に組み込んだとたん、このようなかんじで使用していた関数が全てエラーを吐くようになったんです。
エラーは、
「関数が不正な1個の実引数をともなって呼び出されました。」
と出ます。とにかく全ての関数に出ます。
なにがいけないのでしょう?

----------------------
さらに、別の関数でも、
float t05(n) ←n定義されていない識別子です。
int n;     ←関数の定義が間違っています。
{ }
のように使用されている関数では、上記右のようにエラーが出ます。これは、.hでは宣言されていません。
ひとの作ったプログラムなので、わけがわかりません。
Cではうごいたんですが、、、助けてください。



134 名前:デフォルトの名無しさん :02/06/10 02:37
float t05(n)
int n; ←予期せぬEOFがハケーンされました。
{}
こんなのも出る始末。Cプログラムでは、
メインとなる.c
ヘッダーファイル.h
インクルードされている 関数の書いてある.c
の3つで、
それらを忠実にインクルードして、メインとなる.c中のmainの内容を
ダイアログのOnButton(){ ココ }にコピペしたのですが、、
なにがおかしいのでしょう?

宣言などは、Dlg.cppの一番上。
main以外のものは、OnButtonの直前にコピペ。
としました。

135 名前:ノーマット :02/06/10 02:43
すいません。課題頑張ってる中のモノです。
チョット分からないので教えて下さい。

円周率って、#define PI 3.14って感じで与えないとダメなんでしょうか?
元々定数で用意されてますか?


136 名前:デフォルトの名無しさん :02/06/10 02:43
float t05(int n)
{}
に直すヨロシ

extern float *my_allocf();
と宣言されてるのも
extern float *my_allocf(int n);
に直す

あと #include "..." を
extern "C" {
}
で囲む。

いくらなんでもこぴぺだけで動くと思わないほうがいいとおもう


137 名前:デフォルトの名無しさん :02/06/10 02:46
>>136
ありがとうございます。。
とりあえずやってみます。

138 名前:デフォルトの名無しさん :02/06/10 02:50
>>135 math.h で M_PI が定義されている、って書こうと思ったけど、
VC では M_PI は見つからなかった。gcc にはあった。

139 名前:デフォルトの名無しさん :02/06/10 03:03
>>136
すみません、 それは、ヘッダーファイルの中において、
extern "C" {
#include "..."
#include "..."
#include "..."
  :
}
とするということでしょうか?
それとも、.cなどにあるexternにも全てに行うのでしょうか?


140 名前:ノーマット :02/06/10 03:25
>>138
じゃ、自前で定義しておきます。
ありがとうございました。


141 名前:139 :02/06/10 03:25
netで少し調べて、なんとか、コンパイル通るところまでは いけました。
ありがとうございました!!♪

142 名前:デフォルトの名無しさん :02/06/10 21:02
どうしても詰まっていた事があったので、お伺いしたいのですが。

MDIのプログラムで、ダイアログをDoModal命令で表示したのですが、
実行時にダイアログを動かすと親ウインドウから外に出てしまいます。
設定でチャイルドにもしてみたのですが、そうすると画面が固まってしまって・・

親ウインドウ内にダイアログを完全に閉じ込める方法はないでしょうか。


143 名前:デフォルトの名無しさん :02/06/10 21:10
何でそんなことをしたいのか理由を書いてみ?

144 名前:デフォルトの名無しさん :02/06/10 21:18
VC++のエディタで::や.や->を使ったときに出るメンバの表示が
できなくなっちゃったんですがどうすれば直りますでしょうか?


145 名前:デフォルトの名無しさん :02/06/10 21:57
>>144
VCを終了させてから、プロジェクト内の 拡張子ncb のファイルを消してみる

おれは、これでばっちり直ったけどなぁ。原因はいまだ不明。

146 名前:デフォルトの名無しさん :02/06/10 22:00
>>144
私の辞書には2通りの過去スレメモがある。
できた方で報告よろしく。

1,一旦VCを終了させ、 clwファイルを削除してからそのプロジェクトを
再度開き、 ClassWizardを起動して内部情報を再構築。

2,ワークスペースに表示されなくなったクラスのヘッダファイル(****.h)を
メモ帳か何かで開いて内容を書き替えずに保存する(つまりファイルのタイムスタンプを変える)。
すると消えたクラスが復活する。(clwファイルは消さない方がいいような気がする)

147 名前:146 :02/06/10 22:01
おっと、レス中に145さんの書き込みが…。
あっしの方は違う気がしてきたぜ(゚∀。)アヒャヒャ スマナイ

148 名前:145 :02/06/10 22:13
>>146 も十分試す価値あり。
どちらもやってみることをおすすめしますです。



俺のときはMFCとSDKの関数が全部出てこなくなって激しく鬱・・・。
必死に検索したらでてきたYO!

149 名前:144 :02/06/10 22:32
ncb削除をやったところ直りました!ありがとうございました!
>>145さん,>>146さんの解決法は永久保存します!

150 名前:デフォルトの名無しさん :02/06/10 22:55
>>142
フォームビューにすれ
と使いもしないで言ってみるテスト。

151 名前:デフォルトの名無しさん :02/06/10 23:22
>>135
VC7では
#define _USE_MATH_DEFINES
#include<math.h>
やれば使える。

152 名前:151 :02/06/10 23:23
M_PIね

153 名前:デフォルトの名無しさん :02/06/10 23:27
132 :デフォルトの名無しさん :02/06/09 22:24
これって結局fixされたんですか?

http://japan.cnet.com/Enterprise/News/2002/Item/020215-3.html?il


154 名前:デフォルトの名無しさん :02/06/10 23:33
ソースから実行するときなんですけど、
一度実行して、そのままソースには手をつけずに
再度実行した時に、全cppをコンパイルしてしまいます。
昨日までは問題なくできていただけに原因が全く解らないです。
誰か解る方がいましたら教えて下さい。

155 名前:デフォルトの名無しさん :02/06/10 23:38
>>154
HDDに住む子人さんは、時々ソースのバグを修正したりします。

156 名前:154 :02/06/10 23:59
>>155 子人さんというのがよく解らないのですけどどういう意味なんですか?
ただ、今は時々じゃなくて毎回手をつけていないソースもコンパイルしてしまいます。


157 名前:デフォルトの名無しさん :02/06/11 00:03
・間違ってリビルドを選択している
・自分でも気がつかないうちにソースを触ってしまっている

158 名前:154 :02/06/11 00:20
>>157 実行時にはctrl+F5でしていますから
リビルドにはなっていないと思います。
実行の方も何回かやっていますけど、うまくいかないです。
ソースの方も気をつけて実行していますけど、
駄目です。
アウトプットの所ににも
”スキップ中... (関連する変更は検出されませんでした)”
とでてきますし、ソース自体には変更はないと思うのですけど。


159 名前:デフォルトの名無しさん :02/06/11 00:21
>>154
俺も昔そうなったことがある。
で、全ファイルのタイムスタンプを、タイムスタンプ変更ツールで、変更した
ら正常になった。なんかの拍子に、ファイルのタイムスタンプが矛盾した状態
になったのかも。

160 名前:154 :02/06/11 00:57
直りました。皆さんありがとうございました。
>>159 ご指摘通り時間の関係でした。
パソコン本体の時間がなぜか80年になっていたので
ソースとの時間の矛盾が原因でした。
1つ勉強になりました。




161 名前:こまった君 :02/06/11 09:01
データを読み込んで、グラフを描画するようにしているんですが、
データが長いと、ピクチャがいっぱいになってしまいますよね。
で、今は、端までいくと、また一から白紙にして描画するようにしているんですが、
それだと、過去のが見れないですよね。
で、いっぱいまで行ったら、スクロールバーでぐりぐりと戻れるようにするにはどうすればいいでしょうか?
↓こんな感じです。
┏━━━━━━━━━━━┓
┃                ┃
┃                ┃←グラフを描画
┃                ┃
┣┳━━┳┳━━━━━┳┫
┗┻━━┻┻━━━━━┻┛←スクロールバー

でなおかつ、このグラフから、クリック&ドラグでデータ範囲を指定→なんらかの形でプログラムに送るなんてことはできるでしょうか?



162 名前:デフォルトの名無しさん :02/06/11 12:06
>>161
「スクロールバーのコントロール張ればいいだけじゃん」
と思ってしまうのだけど…

163 名前:デフォルトの名無しさん :02/06/11 12:22
プロファイリングのやり方を教えていただけないでしょうか。
一応、設定で「プロファイルを行う」にチェックは入れているのですが、
どうやって結果を見るのかわかりません。
あれこれ検索もかけてみたのですが、
どうやって結果を見るのか結局調べがつきませんでした。

簡単な説明で構いません。
宜しくお願いします。

164 名前:デフォルトの名無しさん :02/06/11 15:05
あげげ!!

165 名前:デフォルトの名無しさん :02/06/11 15:46
>>163
検索不足。まず、チェック自体がたぶん入ってないよ。ここの2番目、サイトに感謝して見てきなされ。
http://www.google.com/search?num=20&hl=ja&q=%83v%83%8D%83t%83@%83C%83%8B%81@VC&lr=lang_ja

あとはビルド>プロファイル。結果は実行終了後、デバッグウィンドウに出力される。

166 名前:163 :02/06/11 17:14
>165
すみません、出来ました。
ありがとうございます。
お手数おかけしました。

167 名前:デフォルトの名無しさん :02/06/11 19:13
BCCだったら問題なくコソパイルできるのに
VC++だと

hellowin.obj : error LNK2001: 外部シンボル "__imp__PlaySoundA@12" は未解決です
Debug/HELLOWIN.exe : fatal error LNK1120: 外部参照 1 が未解決です。

とエラーがでてしまうのですが。なぜ?

168 名前:デフォルトの名無しさん :02/06/11 19:21
winmm.lib

169 名前:デフォルトの名無しさん :02/06/11 19:23
プロジェクトの設定でオブジェクト/ライブラリモジュールにwinmm.libを追加。

170 名前:デフォルトの名無しさん :02/06/11 19:23
>>168
それがどうなのですか?
わかりません。教えてください。おながいします

171 名前:デフォルトの名無しさん :02/06/11 19:23
>>169
ありがとうございますた。

172 名前:デフォルトの名無しさん :02/06/11 19:26
被ってたが役には立ったか・・というかライブラリの追加の仕方もシランのか。

173 名前:デフォルトの名無しさん :02/06/11 19:32
ヽ(`Д´)ノ ウワァァァン
追加の仕方わからないよ

174 名前:デフォルトの名無しさん :02/06/11 19:42
BCCで作成した.exeファイルを実行するとちゃんとウインドウ表示されるのにVC++で
作成したexeファイル実行しても何も表示されないのですが。
でもCTRL+ALT+DELを押すと実行されているのです。
終了しようとすると応答なしとか言われるし。なぜですか?
ソース貼らないとダメっすか?

175 名前:デフォルトの名無しさん :02/06/11 19:44
おまえの書いたソースがbccに依存しまくっているだけ

176 名前:デフォルトの名無しさん :02/06/11 19:45
いや、他人が書いたBCCのソースだろう。絶対。

177 名前:デフォルトの名無しさん :02/06/11 19:46
漏れは「プログラミングWindows95」とかいう糞分厚い本に載ってるソースを書いてる
だけなのですが。しかもその本ではVC++を使用しているとか書いてあるし。

178 名前:デフォルトの名無しさん :02/06/11 19:48
ちなみにこれです
ttp://www.ascii.co.jp/pb/book1/shinkan/detail/1322774.html


179 名前:デフォルトの名無しさん :02/06/11 19:49
たぶん、写し間違い

180 名前:デフォルトの名無しさん :02/06/11 19:49
>>173
MSDN
リンカ オプションの設定

181 名前:デフォルトの名無しさん :02/06/11 19:51
95とMeではWindowsプログラミングに違いはないですよね?

182 名前:デフォルトの名無しさん :02/06/11 19:52
イパーイある

183 名前:デフォルトの名無しさん :02/06/11 19:54
ソースは載ってるけどVCの設定については詳しく書いてないからね

184 名前:デフォルトの名無しさん :02/06/11 19:54
>>182
Σ(゚д゚lll)エッ!?マジッスカ?
それじゃ、漏れが勉強してる本は意味ないの?

185 名前:デフォルトの名無しさん :02/06/11 19:56
今はそれの第五版がでとるよ。


186 名前:デフォルトの名無しさん :02/06/11 20:01
でもとりあえずBCCでは問題ないのにVC++でできないってことは
僕は間違えてないと思うんですけどね…
VC++のセテーイがわるいのかな?

187 名前:デフォルトの名無しさん :02/06/11 20:12
ソースどっかに晒せ。

#ソース晒し用に、freeなSourceForgeアカとか取ったりして・・

188 名前:デフォルトの名無しさん :02/06/11 20:21
#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "HelloWin" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;

wndclass.cbSize =sizeof(wndclass);
wndclass.style =CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc =WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION) ;

RegisterClassEx (&wndclass) ;

hwnd = CreateWindow (szAppName,
"The Hello Program",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);

ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg) ;
}
return msg.wParam ;
}


189 名前:デフォルトの名無しさん :02/06/11 20:23
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;

switch (iMsg)
{
case WM_CREATE :
PlaySound ("hellowin.wav",NULL, SND_FILENAME | SND_ASYNC) ;
return 0;

case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;

GetClientRect (hwnd, &rect) ;

DrawText (hdc, "Hello, Windows Me!",-1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hwnd, &ps) ;
return 0 ;

case WM_DESTROY :
PostQuitMessage (0);
return 0;
}

return DefWindowProc (hwnd, iMsg,wParam, lParam) ;
}


190 名前:デフォルトの名無しさん :02/06/11 20:24
人の話を聞かない奴がいるな

191 名前:デフォルトの名無しさん :02/06/11 20:25
>>186
つーか、一番疑わしいのがあんた自身。
間違えて無いというのなら、打ち込み終わった後に一切エラーでなかったか?

192 名前:デフォルトの名無しさん :02/06/11 20:26
あぁ、最初に載ってるプログラムだね

193 名前:デフォルトの名無しさん :02/06/11 20:28
ウチじゃ普通に動くが?

194 名前:デフォルトの名無しさん :02/06/11 20:30
>>190
すみません。でも余り長くないので。
>>191
エラーは一切出ません。


195 名前:デフォルトの名無しさん :02/06/11 20:32
>>189
wndclass.lpszMenuName
を設定し忘れてる
つーか構造体使うときははじめにZeroMemoryしる!

RegisterClassExもCreateWindowもGetMessageもエラーチェックしてないし。
んなもん応答無しになって当然だ。

196 名前:デフォルトの名無しさん :02/06/11 20:38
>>195
すみません…
僕が馬鹿ですた。
>wndclass.lpszMenuName
。を設定し忘れてる

まさにこれです。
きちんと動きました。
しかし、それ以外にも指摘していただいてますが
もう間違ってないと思います。
エラーチェックとかよく分からないのですが。

197 名前:デフォルトの名無しさん :02/06/11 20:40
確かあの本に
「本中ではエラーチェックは省くけど本当はちゃんとやってね」的
文章があったと思われ。

198 名前:デフォルトの名無しさん :02/06/11 20:51
分かりますた。
ありがとうございますた

199 名前:デフォルトの名無しさん :02/06/12 13:01
独自のファイルフォーマット作って、
リード/ライト出来るよう作ったんですけど。
全てのデータがシ−ケンシャルアクセスだけど
WriteFile/ReadFileで主にアクセスする単位はDWORD程度。
これって効率悪いですか?
メモリは食うけど、一端メモリ上でデータ列を構築して
一気にアクセスした方がいいですか?
ファイルサイズは1M〜500KBぐらいです。

200 名前:デフォルトの名無しさん :02/06/12 13:10
>>199
WriteFile/ReadFile効率はよく知らないけど、
1Mの程度のサイズなら、オンメモリで処理しても
いいんじゃない?

201 名前:デフォルトの名無しさん :02/06/12 13:19
ファイルマッピング使えば?

202 名前:デフォルトの名無しさん :02/06/12 15:39
既出orFAQかもしれませんが、
ListViewコントロールで行全体をハイライト(選択反転)にする
方法で、オーナー描画を使う方法はMSDNに載っていますが、
それ以外にもっと簡単な方法はないのでしょうか?

どこかのstyleのオプションでできたような記憶があるのです。
VBとかVCLだと簡単にできるんだろうけどなぁ

203 名前:デフォルトの名無しさん :02/06/12 15:40
いいこと言った

204 名前:デフォルトの名無しさん :02/06/12 15:45
>>202
LVS_EX_FULLROWSELECT じゃないの?
検索で一発で出てきたよん。
http://hp.vector.co.jp/authors/VA016117/listview.html

205 名前:デフォルトの名無しさん :02/06/12 15:58
>>204 さんくす

いや、調べても出てこなかったんだよ。
せめてMSDNで「ListView AND 行全体」ぐらいでヒットして欲しかった。

206 名前:デフォルトの名無しさん :02/06/12 16:02
日本語版MSDNでも英語ページだからな<ListViewコントロール拡張スタイル

207 名前:199 :02/06/12 20:01
>>200-201
ファイルマッピングで組み直しました。
ありがとうございました。

208 名前:こまった君 :02/06/12 23:44
以前、スクロールバーのことで質問したものです。
スクロールの入れ方はわかったんですが、
ピクチャとの関連付けのやり方がわかりません。
スクロールバー関数によって、取得したスクロールの現在位置をピクチャに反映するんでしょうか。。。
ピクチャに描画する関数と、スクロールバーの関数が別々なのに、
そんなことできますか??

どこかに説明しているページなどありませんか??
やりたいことは、
ピクチャに画面に表示しきれないぐらいのながーいグラフを描画して、
スクロールバーによって、移動させながら後で見るということがしたいのですが、、


209 名前:デフォルトの名無しさん :02/06/12 23:53
>>208
スクロールバーの分解能とピクチャの分解能を合わせてスクロールバーの変化で現在位置を
取得してピクチャの描画範囲を設定してあげるって感じじゃないの?

210 名前:こまった君 :02/06/13 00:16
>>209
すみません。
えーと、ちょっと説明させていただきマスト、
↓ここで、最初のスクロールバーの位置を設定してます。で、
BOOL C●●Dlg::OnInitDialog()
{
//スクロールバーのイニシャル設定
CScrollBar* s=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR1);
s->SetScrollRange(0,255);
s->SetScrolPos(0);
return TRUE;
}
そして、
void CMyadDlg::OnButton5()
{  } の中で、ピクチャに描画されるようになっているわけです。
その後に、
void CMyadDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{  } という関数がくるわけですが、ボタン5で描画されたグラフをスクロールするたびに描画するのは大変時間がかかります。
描画されたグラフを覚えておいて、スクロールによって、再描画っていう風にはできませんか?

仮想的なピクチャの幅を0〜1024ピクセルの大きさに設定して、
最初実際に画面に表示されるのは、【0〜200ピクセル/1024ピクセル】
スクロールによって、仮想的なピクチャのうち200-400の部分を表示する。とか、そういったことはできないでしょうか??駄文すみません。


211 名前:デフォルトの名無しさん :02/06/13 06:11
そのためのCompatibleDC,そのためのBitBltダ・

212 名前:こまった君 :02/06/13 13:41
>>211
ありがとうございます。
仰ってる意味がよくわかりませんが、ちょっと調べてみます。

もう一つ質問です。
プログラムを実行すると、
子ウインドウが表示され、そこにグラフを描画するようにしたのですが、
子ウインドウは立ち上がるんですが、向こうが透けたようになって一向に描画されずに(というか描画されるべきウインドウもきちんと描画されず、処理が追い付いていないようなかんじ)、
プロセスが修了してしまいます。
リソース不足などのときになるような症状です。
これでは、グラフを見ることすらできません。
処理→描画のコード自体は間違っていないはずなんですが、、

また、プログラム実行中に×をクリックして修了しようとすると、
このプログラムは応答していませんとなりますが、これで普通なんでしょうか?

213 名前:デフォルトの名無しさん :02/06/13 15:13
お前はホントにこまった君だな(藁
向こうが透けたようになって一向に描画されずに、というのは
お前が組んだ描画ロジックが全く機能していないからだ。
どっかからクライアント描画のちゃんとしたサンプルを探してきて勉強してくるように。

214 名前:こまった君 :02/06/14 01:08
>>213
了解です。クライアント描画ですね。
その線でもうすこし勉強してみます。。
教えて君すまそです。
しかし、こうも右も左も分からないと、ちょっとしたヒントが非常に助かります。
では、胃ってきます。

215 名前:デフォルトの名無しさん :02/06/17 21:42
前から作ってみたいと思ってたのですが
一度しか見ることのできない画像を作成するソフトって
作ること可能なんでしょうか?
一度見たらレジストリあたりに記録して
二度目以降のプレビューを防いで。
そこで気になってるのはPrintScreenを
使用できないようにすることってできませんか?
これが無理ならこのソフト作ろうとすること自体が
間違いなので。。
というかもう既にそんなソフトあったりしますか?
調べてみたのですがわからなくて書き込みました。
よろしくお願いしますl。

216 名前:デフォルトの名無しさん :02/06/17 21:48
不可能。
絵を再現するデータが存在する限り、どこかに抜け道はある。
勿論、暗号と同じで極端に解読が難しいという物なら出来るだろうけど、
確実に1度しか見れないようにするのは不可能。

217 名前:デフォルトの名無しさん :02/06/17 22:03
>>216
レスありがとうございます。
そうですね、
キージェネとか存在することが証明ですね。
言い換えると、、
解読が並に難しくて且つ、
そんなにメジャーにならなくて、
公にクラックされることがなければ
ある程度目的通りの物は作ること可能ですか?
わかりにくい分ですみません。
いけますか?



218 名前:デフォルトの名無しさん :02/06/17 22:03

意味なくageちゃいました、
ごめんなさい。

219 名前:デフォルトの名無しさん :02/06/17 23:19
>>215
一度見たら消しちゃう。
PrintScreen対策としては、OpenClipboardしっぱなしにして独占。

220 名前:デフォルトの名無しさん :02/06/17 23:20
>>219
その程度じゃ簡単に対策できちゃうから無意味。

221 名前:デフォルトの名無しさん :02/06/17 23:38
テキストファイルに個人コード(4桁)日付(yyyyMMdd)時間(hhmm)と
連続で保存さているところから、
コンボボックスに個人コード、リストボックスに日付がデータとしてあって
2つのIDを使って日付をとってくる方法がわからないので、
教えていただきたいです

222 名前:デフォルトの名無しさん :02/06/17 23:58
Priority上げて全部ひったくるとか。

223 名前:デフォルトの名無しさん :02/06/18 00:03
>>221
わけわかめ。IDって?

224 名前:デフォルトの名無しさん :02/06/18 00:11
4桁の数字だろ

225 名前:デフォルトの名無しさん :02/06/18 00:16
>2つのIDを使って日付をとってくる

何処の日付をとってくる?

226 名前:デフォルトの名無しさん :02/06/18 01:58
このスレは、>>221を読解するスレになりました。

えー、まずtxtで保存してあるデータファイルに、4桁の個人コードと
日付(yyyyMMdd)、時間(hhmm)が連続して書き込まれているらしい。

そして個人コード(コンボボックス)、日付(リストボックス)の項目がある
らしいのだが、ここにあるデータがファイルのものなのか、それとも別の
何かなのか、我々には解明できなかった。時間の項目が無いのも不可思議だ。

次に……出た!謎の2つのID!!ID第一の候補として個人コードが
挙げられるが、では2つ目は?直前に出た日付の事だろうか?
しかし、この2つのIDは日付をとるのに使われるらしい。では時間のこと?
おお、なんというどんでん返し!!つか分かんねぇよ(゚∀。)アヒャヒャヒャヒャ


227 名前:デフォルトの名無しさん :02/06/18 02:06
エディットボックスのよこに、スピンボタンを加えました.
最初はうまくうごいたんです。
で、
メンバ変数に変数を加えて、そのあとm_spn1.SetRange( , );などで範囲と初期値を
設定したんですが、
メンバ変数などを加える時になにかへんなところをおしてしまったのか、、エラーが
でて、というか、コンパイルビルドは通り、実行すると、
なにも反応なし、
デバッグモードでひらくと、
もういっちばん最初で、
00000001 ???
error: シンボル"this"が見つかりません
というエラーがでて、一番最初の00000001を矢印がさしています。
もうわけがわかりません。
spinボタンを消して、元通りにしてもどうにもなりません。
なにがいけないのでしょう?
ちなみにバックアップをとっていないのです。
こうなったらおわりですか?


228 名前:デフォルトの名無しさん :02/06/18 03:07
>>221
http://forums.belution.com/ja/vc/000/073/39.shtml

229 名前:デフォルトの名無しさん :02/06/18 04:12
>>227がんがれ。

230 名前:227 :02/06/18 06:09
一からやってみて、どこがおかしいのか、突き止めました。

スピンボタン追加→数値の自動表示・自動関連付け・右端にチェック
これだけならうまくタブオーダー一つ前のeditを操作できたのですが、
次、スピンボタンにメンバ変数spn1を追加して、初期値&レンジを設定しようと、
次の■のように追加したのですが、
OnInitDialog(){
(中略)
// TODO:特別な初期化を行うときはこの場所に追加してくだちい
■ m_spn1.SetRange(1,9);
■ m_spn1.SetPos(5);
return TRUE; }
そうしたとたん、ビルド後アプリがまったく立ち上がらなくなってしまうんです。
ちゃんと本の通りやったんですがね、、、

231 名前:227 :02/06/18 06:36
というか、どうやら
ヘッダーファイル内に、
CSpinButtonCtrl m_spn1;
CSpinButtonCtrl m_spn2;
がのこってると、だめみたいです。消すとアプリも起動します。
このままじゃ初期値等が設定できません。
どうしよ。。

232 名前:デフォルトの名無しさん :02/06/18 07:31
テキストファイルに個人コード(4桁)日付(yyyyMMdd)時間(hhmm)と連続で保存さているところから、個人コードをコンボボックスに表示して日付をリストボックスに表示します。データは構造体で持っています。

同じ個人コードは表示しないようにするための比較方法を教えていただきたいです。
うまく取得できた個人コードから日付をとってくる方法もわからないので教えていただきたいです。
つぎに個人コードと日付(個人コード)の2つのデータ(ID)から時間を取ってくる方法を教えてください。

私が作ったものではテキストファイルから個人コードは読み込めたのですが、
同じ個人コードが混じってしまっているので省きたいです。
ちなみにソースも記載したほうがよろしいのでしょうか?

233 名前:227 :02/06/18 07:31
新規作成でダイアログベースで同じやり方で作ってみたらちゃんとレンジ&初期値設定できましたよ。
なんでかなー。もうなきそうです。

234 名前:227 :02/06/18 07:48
CSpinButtonCtrl m_spn1;
この宣言をOninitDialog()内から、
cppの一番上(なんもないところ、まじ最初)に持って行ったらできました。なんで?どうして?つーか、こんなんしていいの?
というか、原因がわからないので、非常にすっきりしません。
どなたか、なんかアドバイスください。

235 名前:デフォルトの名無しさん :02/06/18 13:56
>>227
・m_spn1が実際のスピンボタンコントロールに関連付けられていない
・CSpinButtonCtrl m_spn1; の位置については、「スコープ」という言葉がある

236 名前:デフォルトの名無しさん :02/06/18 15:03
popen並に簡単に使えるAPIないですか?

237 名前:デフォルトの名無しさん :02/06/18 15:06
>>236
MessageBeepが簡単に使えます

238 名前::02/06/18 15:18
質問があります。
よろしくお願いします。
クライアント領域にツールバーを作成したのですが、
それにコントロールと同じようにツールチップを割り当てると
うまくいかず、全て同じツールチップになってしまいます。
この解決策を知っている方がいたら情報いただけないでしょうか?


239 名前:助けて下さい! :02/06/18 15:42
waveファイルに信号処理(FIR)をかけて別のwaveファイルに出力するプログラム
は出来てるんですが、wavに書き出す前に試聴出来るようスピーカから音が出る
ようにしたいんです。出来上がったwaveファイルの再生については組めるんですが
全然解りません。どんな些細なヒントでもいいので教えていただけないでしょうか?


240 名前:デフォルトの名無しさん :02/06/18 17:27
239
waveOutWrite()あたりを検索してくれ。

再生データがバッファ1つに収まる範囲なら大して手間かからんと思う。
無限再生なんかで、システム側からwaveOutProcをよばれて、データを切れ目
なく供給する部分が結構低レベルで面倒。高レベルのAPI使ったほうが楽。


241 名前:239 :02/06/18 18:05
>240
ありがとうございます。WAVEFORMATEX?なんて使おうとしてました。
さっそくやってみます。

242 名前:239 :02/06/18 18:06
あ、どちらにせよこの構造体は必要なんだ…。

243 名前:デフォルトの名無しさん :02/06/18 20:46
>>232
まだよくわからん、まさかネタ?(w
内部データのIDと外部ファイルのIDを比較して一致した時だけ
何かしらのの時刻を取ってきて何かしらの領域に格納するの?

取り敢えず入出力をハッキリせえよ。脳内で語りすぎ(w

244 名前:232 :02/06/18 21:32
>>232
232です。
IDはコントロールIDのことです。説明不足でした。
ちなみにデータ例は
45672002061810001800
12342002060209001725
45672002052909002200
こんな感じです。
表示上では
個人コードが4567
日付が2002/06/18
時間1が10:00
時間2が18:00
個人コードと日付から時間をとってきたいのです。
ちなみに同じ個人コードある場合は
エディットボックスには
2002/05/29
2002/06/18
と2つ表示させいです。

245 名前:デフォルトの名無しさん :02/06/18 21:41
お前みたいに仕様をはっきり説明できないやつは何やっても無駄。


246 名前:デフォルトの名無しさん :02/06/18 21:49
>>244
>>245じゃないけどホントにわからん(w

>45672002061810001800
>12342002060209001725
>45672002052909002200

これ自体が何を表してるのかはわかったけどさ、

>個人コードと日付から時間をとってきたいのです。

これの意味がわからん。
例えば上の例なら4567というIDをもったデータが1行目と3行目にあるわけだけど
単にIDの部分を比較して、データが重複してるかどうかを判断したいの?
それなら行毎の先頭4バイトを読み込んでstrcmpで比較していくだけだと思うけど。

247 名前:232 :02/06/18 22:04
個人コードと日付が合致するものの日付を取得して
時間1、時間2をそれぞれをSetWindowText()でエディットに表示させるのが
最終目的です。

1.初期処理でテキストファイルからすべての個人コードを
コンボボックスに挿入。(同じ個人コードは表示しない)
2.コンボボックスから個人コードを選択し、
個人コードに対する日付をリストボックスに表示させる。
3.最後にリストボックスから日付を選択して、
時間1、時間2をエディットに表示させる。

以上です。これでわかってもらえなかったら諦めます…

248 名前:デフォルトの名無しさん :02/06/18 22:05
データ列: personal_code date time
と言う構造で、 personal_codeとdateからtimeを取得したいってこと?

249 名前:デフォルトの名無しさん :02/06/18 22:07
>>247
とりあえず、インターフェース(コンボボックス、リストボックス)と
ロジックを分離して考えよう。


250 名前:デフォルトの名無しさん :02/06/18 22:15
>>247
個人コードと日付が合致って

45672002061810001800 の

456720020618 ここまでの事?

で、日付は

45672002061810001800 の

20020618 で 時間1、2は

10001800 でOK?

で、これデータ自体がテキストファイルになっていて
それを読み込んで構造体に格納するまでは作ってあるって事?
要は何処まで進んでるのかがわからないんだけど(w


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