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


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

VisualC++相談室
501 名前:名無しさんi486 :2000/12/13(水) 14:20
>>500
もっと手応えあるやつ頼むぜ(笑)

502 名前:493 :2000/12/13(水) 16:50
私が馬鹿でした・・・


503 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 17:20
バイナリデータ(データ中に0を含む)を配列のまま
ファイルに書き込む方法ってあるんでしょうか?
(NULL文字として認識されてしまうため)


504 名前:名無しさんi486 :2000/12/13(水) 17:25
>>503
fwrite
もっとだ、もっと手応えあるやつぅ〜
つか、もう帰ろう。

505 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 17:55
_T()マクロってどういう時に使ってます?
こだわると""で囲まれた文字列全てに対してやりたくなってしまうので
これは見切る、これは付けるといった境界線を教えて下さい。

506 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 18:16
>>505
あくまで俺の個人的意見であるが。
建前としては、同じソースをSBCS/MBCS/UNICODE全てに渡って
#defineの切替だけで使えるようにしたいとき。
ただ、現実問題としてはMBCSの場合は同じアルゴリズムが使えず
汎用テキストマッピングの機械的な置き換えだけではどうにも
ならない場合が多いことと、3パターン分テストするだけの余裕および
意味があることは普通はないので、通常はTCHARの使用は
無駄
以外の何者でもなく、むしろ最初からUNICODE決めうち、などで
やったほうが分かりやすいし効率的でもあると考えている。


507 名前:505 :2000/12/13(水) 18:41
NTってUNICODEですか?

508 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 19:59
調子こいてSTLがんがん使ってたら
古いマシンで動作確認しようとした時に
「MSVCP60.DLLがない」と怒られてしまいました。
対象動作環境をしぼろうと思うのですが
どう限定(95+IE5で入る?)したらいいか分かりません。
教えてください。

509 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 20:49
>>508
STLは関係ないよ。
InstallShieldってついてるだろ。あれでインストーラ作ったら。
面倒なら、DependencyWalkerで依存関係調べて、必要なファイル
まとめてコピーとか。
著作権に気をつけろよ。

510 名前:509 :2000/12/13(水) 20:53
そうそう、コピーするなら実行時ディレクトリな。
systemに入れると危険だぞ。

511 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 21:55
コンストラクタとInitInstance()ってどっちが先に
呼ばれるんでしょうか?

512 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 22:00
>>511
なんじゃそりゃ?
コンストラクタが先にきまっとろー!
ところでInitInstance()ってなに?

513 名前:511 :2000/12/13(水) 22:00
デバッガで追ったらコンストラクタでした。
2つの違いってなんでしょう?

514 名前:511 :2000/12/13(水) 22:03
>>512
CWinAppとかCWinThreadのメンバ関数です。

515 名前:名無しさん@お腹いっぱい。 :2000/12/13(水) 22:07
>>514
そりゃ、あんたマイクロソフトが勝手に作ったMFCじゃねーか
ANSI標準のコンストラクタと一緒にするなっ!

516 名前:名無しさん@お腹いっぱい。 :2000/12/14(木) 00:21
>>508
STL より std::*stream と std::string が怪しい。
( STL はほとんどヘッダだけだし。テンプレートだけに。


517 名前:名無しさん@お腹いっぱい。 :2000/12/14(木) 01:19
508さん,516さん,ありがとうございました。
DependencyWalkerで見たところ string のせいと分かりました。
幸い使用箇所が少なかったので使用をやめたところ
MSVCP60.DLL に依存しなくなりました。

518 名前:名無しさん@お腹いっぱい。 :2000/12/14(木) 01:23
↑508は自分でアドバイス頂いたのは509さんでした。
DependencyWalkerで見た様子では(自分がよくわかっていない)
「allocator」がらみでMSVCP60.DLLに関係してくるようでした。

519 名前:名無しサソ :2000/12/14(木) 04:07
 デバッグ時の質問を良いでしょうか。STLでベクタやセットを
使っているのですが、これらのイテレータの先は評価式では見る
事が出来ないのでしょうか?見ようとすると、
「オーバーロードされた演算子は見つかりません」
と言われてしまいます。

520 名前:名無しさん@お腹いっぱい。 :2000/12/15(金) 02:44
jstring.hって知りませんか?
MSCにはこれがあったんですけど。

521 名前:名無しさん@お腹いっぱい。 :2000/12/15(金) 03:31
>>520
mbstring.h

522 名前:名無しさん@お腹いっぱい。 :2000/12/15(金) 04:31
>521 サンクス

523 名前:アセンブラを勉強したい :2000/12/17(日) 16:34
__asm()を使ってアセンブラの勉強をしたいと考えてます。
でも初心者なため何から手をつけたらいいかわかりません。
参考書なり参考にあるホームページがございましたら
教えてもらえないでしょうか。m(_ _)m

524 名前:名無しさん@お腹いっぱい。 :2000/12/17(日) 16:45
>>523
上左の お勉強ページをクリックしなさい
編集されてるのは
http://piza.2ch.net/test/read.cgi?bbs=tech&key=967778156


525 名前:523 :2000/12/18(月) 09:57
ありがとうございます。
勉強してきます。

526 名前:名無しサソ :2000/12/18(月) 11:36
 一応理由がわかったので報告までに。
識別子が255文字を超えている状態だと、デバッガ上で
値の確認が不可能になってしまうらしいです。仕様ですね。
VC++7.0で改善してくれないものか。

527 名前:名無しさん@お腹いっぱい。 :2000/12/18(月) 20:57
簡単な会計ソフトを作ってみようかと思っているのですが
出来上がったときに金額の入力するためにテンキーで数字を入れると
自動的に"\12,345,678" のように'\'記号や','が自動的に入るように使用と思っています。
どこを探してもそんな便利な関数を見つけることが出来なかったので
結局、自分で関数を造ってするしかないのかと思い、入力用だけは何とか
作ることに成功したのですが、結構めんどくさいのでそんなこと他の人もしているのかどうか。
不安になって皆さんにお尋ねしたいと思い書かせていただきました。
どうなんでしょうか、やはり自作で行くしかしょうがないのでしょうか。
教えてください。


528 名前:名無しさん@お腹いっぱい。 :2000/12/18(月) 21:54
>>527
その程度たいして難しくもない
ここに9行も書き込んでいる時間があれば十分作れるだろ

529 名前:優しい名無しさん :2000/12/19(火) 01:37
MFC使ってみても全然意味不明なんですが、
MFCの本買えば解るようになりますか??

530 名前:名無しさん@お腹いっぱい。 :2000/12/19(火) 09:09
>>529
あなたが初心者ならWinAPI+C言語の組み合わせをお勧めします。

プログラミングWindows第5版 (上)(下)
マイクロソフトプレス

なんかがおすすめ。

531 名前:( ´∀`)さん :2000/12/19(火) 11:42
WM_CAPTION | WM_SYSMENU を持たないウィンドウを作ると、タスクバーの
アイコンを右クリックしても、システムメニューは出ませんが、システム
メニューを表示する方法 or NC領域にボタンなどのコントロールを配置する
方法を教えてください。

532 名前:名無しさん@お腹いっぱい。 :2000/12/19(火) 14:47
WebBrowser Controlで

IWebBrowser2 IE_CNTRL;
IE_CNTRL.GoBack();

一行目にエラーが出ます。
>C:\Program Files\Microsoft Visual Studio\MyProjects\IE\IEDlg.cpp(141) : error C2259: 'IWebBrowser2' : 抽象クラスあるいは構造体のオブジェクトが宣言されています。
VC++6.0です。なぜでせうか??

533 名前:デフォルトの名無さん :2000/12/19(火) 15:02
>532
ローカルやグローバルに取ることは出来ません。
 つまりポインタにしてからね


534 名前:532 :2000/12/19(火) 15:14
おお!
ポインタに宣言し直したらとおりました。
ありがとうございました。

535 名前:名無しさん@お腹いっぱい。 :2000/12/19(火) 16:40
どなたかSUSIEプラグインの使い方を教えて下さいませんか。
渡辺某氏のサンプルはSDKみたいなのでよくわからないです。
(「ワークスペースを開く」では*.dswや*.mdpがないので開けない)
SDKのサンプルのIDEでの閲覧方法か、
MFCでのSUSIEプラグインの使い方、説明のある場所を探してます。
こちらは、Win9x、Win2000、VC++6.0proの環境です。

536 名前:名無しさん@お腹いっぱい。 :2000/12/20(水) 16:22
どうもMFCを使う気は起きない。
でもVSの開発環境自体は素晴らしいと思う。
どっかにソース公開してるC++でかかれたクラス集ないかのぉ。


537 名前:名無しさん@お腹いっぱい。 :2000/12/20(水) 20:41
MSVC++6.0でUINTとintの違いは何ですか?
UINTで定義するのと、intで定義するのでは違いがあるのでしょうか?
初歩的な質問ですが宜しくお願いします。




538 名前:>537 :2000/12/20(水) 21:03
intはC/C++の組み込み型で符号つき。
UINTはMSが勝手に作った型で符号なし。
普通はintを使う。
ただし、UINTを要求する関数,APIに渡す場合はUINTを使う。

539 名前:名無しさん@お腹いっぱい。 :2000/12/20(水) 21:26
MFC難しいか?良いライブラリだとは言わないが。
WindowsでMSっぽいアプリを組もうと思ったらMFCしかなかったし、
勉強したものだ。
MFCごときでつまづくような厨房プログラマは周囲にいなかった。
ユーザーはMS風がデフォルトとして飼いならされているMS信者ば
かりだから、そこに売り込むためにはMFCでMS風ルック&フィール
にすることはそれなりに重要だった。
最近はそうでもないね。


540 名前:名無しさん@お腹いっぱい。 :2000/12/20(水) 21:33
COMとATLをみっちり勉強したいんですけど、まずはじめにMSDNから読もうと思っているのですが、おすすめの個所はありますか?
なにぶんキーワード検索してもヒットが多すぎるので…。よろしくお願いします。当方、ATLはほとんど何も知らず、COMはMFCでオートメーションのクライアントが書ける程度の厨房プラグラマーです。
なにとぞご指導を。


541 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 01:41
MFCはまずダイアログベースでやってみるといいよ。
最初にDocument/Viewなんて言われても(その手の知識がある奴以外には)
は? だから。

AppWizardで雛形を作ったらリソースエディタで適当に画面を作る。
ここまでは誰でもできるだろう。

問題はこの後で、VBだったらコントロールの変数が勝手に割り当てられて、
ダブルクリックでイベントハンドラの編集になるけど、VC++の場合はその
辺が手動になってる。

だから、ClassWizardでコントロール変数割り当てて、イベントハンドラ
を作って...というのがわかると、結構VBライクにいじれるようになるはず。

SDI/MDIでDocument/Viewが絡んでくるとまたちょっと面倒くさいけど。

542 名前:名無しでGO! :2000/12/21(木) 04:31
>537
どうせtypedef unsigned int UINT;なだけでしょう。

543 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 09:09
Document/Viewモデルのどこが難しいのか分かりません。
すごく合理的でシンプルな構造だと思うのですが。
煽りじゃなくて、難しいと思う人は具体的にそう思う
理由を教えてください。


544 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 10:18
わからない人じゃないけど、
押し付けられるのがウザイと思うことはある。
ControllerとViewがいっしょになってるのが使いづらい。
View=Windowなのも結構ヘン。
C++には適切なコールバック方法がないので、
「ない」ということに気づくまで使いづらい。
(気づけば対処できる)
結論として、中途半端だと思う。

まあそれなりに利点があるのは確かなので、
わからない人は頭悪いだけだと思うけど。
と2chっぽく煽ってみる。


545 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 15:22
Document/Viewモデルは、ワープロやデータベースの様にGUIから
分離できるデータ層とプレゼンテーション層にくっきり分けられる
時はよいが、それ以外の構造では(ツール類とかマルチメディア系とか)
では大抵邪魔なだけ。
使わなきゃいいのだけどね。

データ層とプレゼンテーション層に明確に分けられる場合でも、
Viewの方はMFCにおとなしく従っても良いが、Documentの方は自前で
やりたいのだよ。いろいろ都合もあったりしてな。
ところが、MFCのDocument/ViewではDocumentがコア部分で絡んでし
まっていて外しにくい。
結局エンジン/Document/Viewの三層に分かれてしまうが、この場合
Documentは実は意味がないので、すっとばしてしまうというか邪魔
になっているだけ(藁
ま、自分に都合の悪い部分を煽っただけなんで気にしないでくれ。
今はDocument無しにも出来るしな。(でも中途半端に不都合が)

546 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 17:08
質問っす!!!

画面と印刷のマッピングモードを別々に使いたいんですが、
何処でsetmapmodeしたら良いんでしょう?
現在、画面にOnDrawからTextOutとLine○○で表を書いていますが、
同じマッピングモードだとどうしても帳票に入らないんです。
ちなみにドキュメント/ビューのSDIでやってます。

547 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 17:17
>543
 一部のCView派生がDocument/Viewの例外になってる
のはちょっと情けない。

>542
備後。

548 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 17:56
>スタック解放しない
ハァ?
>タイミングによってはプロセスごとこけるおそれあり。
ハァ?

549 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 20:55
>>548
ハァハァって、そんなに興奮するな。クリスマスはもうすぐだ。

550 名前:名無しさん@お腹いっぱい。 :2000/12/21(木) 21:53
548ってバカですか?

551 名前:名無しさん@お腹いっぱい。 :2000/12/22(金) 01:40
はあはあ
もうすぐだよ

552 名前:名無しさん@お腹いっぱい。 :2000/12/22(金) 11:34
VCのエディタって、viでいうところの%みたいに、
対応した{と}を参照するコマンドってないですか?

553 名前:名無C :2000/12/22(金) 12:39
>>552

曖昧だが、たしか、
ctrl+ '[' or ctrl+ ']' のどっちか。


554 名前:400 :2000/12/22(金) 14:53
>>548
おーい、それって>>400へのレスか??
ハァハァ言う前に、MSDNでも何でもいいから、TerminateThreadの
説明ぐらい読んでから、逝けよ。

555 名前:名無しさん@お腹いっぱい。 :2000/12/23(土) 02:09
MFCでダイアログの上にリッチエディットを置いているのですが
そこにDrag and Dropしてもダイアログのほうにドロップイベントが起きたことが伝わらない
ようです。
どうすれば伝わるようになりますか?

556 名前:C-- :2000/12/23(土) 07:05
>>555
リッチエディットからダイアログにドロップイベント送ってやったらダメ?
試してないのでなんとも言えませんが・・・


557 名前:名無しさん@お腹いっぱい。 :2000/12/23(土) 14:35
えーと、どうやって送るんでしょう?関数とかあるんですか?

558 名前:555 :2000/12/23(土) 14:43
というかドロップした時に何の反応もしないのでどのイベントが
起きてるかわからないんですけど・・・
はじめからダイアログ(親ウインドウ)にイベントを渡すように設定できるんですかねぇ?

だからイベントが起きた時に渡すんだと今度はどのイベントなのかわからん・・
どのイベントが起きてるのかってデバッグ実行とかでわかるんですかね?

559 名前:名無しさん@お腹いっぱい。 :2000/12/23(土) 16:01
SPY++で探れ。

560 名前:名無しさん@お腹いっぱい。 :2000/12/23(土) 16:11
int vprintf(const char *format, va_list ap);
の"ap"を自分で自由に中身を作りたいのですが、
どうすればいいのでしょう?

561 名前:555 :2000/12/23(土) 17:51
>559
それがそうだったんですかぁ・・・やってみます

562 名前:デフォルトの名無しさん :2000/12/27(水) 15:03
MFCのメリットって何でしょう?
自分はSDKから組んでたんでMFCを勉強すればするほど
かゆい所に手が届かない感じがするんですが・・・
勉強不足からの錯覚ですか?

563 名前:名無しさん@お腹いっぱい。 :2000/12/27(水) 17:33
>>562
主にOLE/COMがらみのドロドロした部分を何らかの
フレームワークの助け無しに触るのは地獄だと思うが。
要するに何らかのActiveXコントロールやActiveXコンテナを
手作りで作る奴は多分誰もいないだろう。


564 名前:C** :2000/12/27(水) 18:07
>562
SDK(というかAPI)あってのMFCなので、SDKオンリーも否定はしないけど、
アプリケーションフレームワークとしてのMFCはサイズや動作の重さ以外の点では
皆が言うほど悪いものではないと思う。
MFCをマトモに習得しているのであればSDKオンリーで開発するより
MFCを使用した方が、かなり開発効率上がるはず。
あとWinSockアプリもMFC使うとかなり楽。
但しMFCは肥大化が問題視されてるし、MSの路線ではなくなってきてるので、
今となっては「過去のものとなりつつある」という感じ。
今からMFCを覚えるならATL、JAVA、C#あたりを
覚えた方が良いという感じも個人的にはしてる。

565 名前:名無しさん@+*/%- :2000/12/27(水) 18:59
なんでMSは設計のやり直しをしないんだろう。
「おれのやったことには間違いなどなかった」
というお偉いさん的発想なんだろうか。
MFC2とか出せばいいのに!



566 名前:デフォルトの名無しさん :2000/12/27(水) 19:01
単にめんどくさいんでしょ。

567 名前:デフォルトの名無しさん :2000/12/27(水) 19:26
>>565
ハンガリアンはC#で捨てたようなので
今後に期待しましょう。ゲヘヘ。

568 名前:デフォルトの名無しさん :2000/12/28(木) 01:41
楽をしたいのならVCLくらい徹底してほしいものだ。

569 名前:デフォルトの名無しさん :2000/12/30(土) 01:09
WTL期待age

570 名前:デフォルトの名無しさん :2000/12/31(日) 06:45
WM_RBUTTONUPの発生が遅れてしまうのですが、なぜでしょうか。

 この問題が発生している状況は、フローティングメニューが表示されている状態で、フローティング
メニューの外を右クリックした時です。
 この時、WM_RBUTTONDOWNは即座に発生しているのですが、WM_RBUTTONUPが発生してくれません。
 この後、何秒たっても何もしなければWM_RBUTTONUPは発生しません。ただ、キーボード入力やマウス
入力を起こすと、その時にWM_RBUTTONUPが発生します。
 あと、このウィンドウには子ウィンドウがあり、それはエディットボックスとチェックボックスなの
ですが、エディットボックスにフォーカスがある時はこの問題は発生してません。

TrackPopupMenuExは第2引数に TPM_LEFTBUTTON | TPM_RIGHTBUTTON を指定して呼び出してます。

 ついでなんですが、左クリックでも同じ現象が発生してました。

571 名前:visualC++初心者 :2001/01/01(月) 01:11
ええとなにから手をつけてよいのかさっぱりなのですが、
しょっぱなはなにをやっていけばよいのか教えてください。

572 名前:デフォルトの名無しさん :2001/01/01(月) 01:19
付属のチュートリアルを一通りヤレ>571

573 名前:visualC++初心者 :2001/01/01(月) 01:33
visualC++プログラミング入門というやつですか?むつかしいんですが。

574 名前:デフォルトの名無しさん :2001/01/01(月) 01:43
>573
それは理解しようとしないからだ。
アレが難しいようじゃお手上げだな。
もうVisualC++はあっても無駄だから、中古屋にでも売ってこい。

575 名前:visualC++初心者 :2001/01/01(月) 02:17
嫌だ。

576 名前:デフォルトの名無しさん :2001/01/01(月) 02:25
>575
なにもやりたい事が無いのなら、無理して覚える必要はない。

577 名前:名無しさんi486 :2001/01/01(月) 02:51
どうせ割れずで拾ったんだろ。

578 名前:デフォルトの名無しさん :2001/01/01(月) 03:01
そういう勘繰りは確認する術が無いからやめとけ。>577
追求すると暴れ出すからナー。(藁

579 名前:>570 :2001/01/01(月) 03:08
良く分からんが・・・
TrackpopupMenu()のあとにWM_NULLをポストしてみるのは
どうでしょう。

580 名前:デフォルトの名無しさん :2001/01/01(月) 03:17
その方法、タスクバーのポップアップメニューの時に使ってる。>579

581 名前:visualC++初心者 :2001/01/01(月) 04:21

おまえらみたいな意味のわからんやつらにとやかく言われる筋あいわない
あーうっとーしー。

582 名前:デフォルトの名無しさん :2001/01/01(月) 06:24
>>581
じゃあ質問なんかするなよ。
おまえの反応の方が意味不明。
展開は予想通りだけど(藁

583 名前:デフォルトの名無しさん :2001/01/01(月) 17:02
>>581
取りあえず、VC++で「Win32 Console Application」を作成する方法
だけを学んで、以後差し当たってはVC++な部分は忘れて、

#include <stdio.h>
main() { printf("hello, world\n"); }

からはじめたまえ。Win32 Console Applicationとは、要するにいわゆる
DOS窓で動くプログラムのことだ。
市販のVC++本は君には役にたたない。環境によらない標準的なC言語の
プログラミングの教科書を使って勉強しなさい。


584 名前:デフォルトの名無しさん :2001/01/02(火) 00:31
>582
おまえしつけーよ死ね

585 名前:デフォルトの名無しさん :2001/01/02(火) 00:40

だれも582みたいなうんこやろーに聞いてないぞ。
おまえに人にアドバイスするくらいの能力あるのか?

586 名前:デフォルトの名無しさん :2001/01/02(火) 00:45
>585

口ダケ厨房ダロウカラキニスルナ

587 名前:デフォルトの名無しさん :2001/01/02(火) 03:12
はいはい。くだらんレスすんなら下げて書きましょうね。>>584-586
ま、visualC++初心者だろうけど。(藁

588 名前:デフォルトの名無しさん :2001/01/02(火) 12:00
vcどころか人間として未熟者。

589 名前:デフォルトの名無しさん :2001/01/02(火) 23:36
おまえがだろ?ぜんぜん面白くねーのに藁とかかくな。さみーぞ。

590 名前:570 :2001/01/03(水) 00:04
>>579

やってみたのですが、駄目でした。

あれから、Spy++ 使って見たのですが WM_RBUTTONDOWN も反応が遅いみたいでした。
マウスの右ボタンを離した時に、WM_RBUTTONDOWN が発生していました。

 自分は勉強の為にリソーススクリプト使わずに CreateWindow( "BUTTON", ...
とかやって書いているのですが、これって邪道でしょうか。実務ではこういうこと
しませんか…。
 それというのも、リソーススクリプトで作ったダイアログではこんな現象は起き
なかったからなんですけど。

591 名前:デフォルトの名無しさん :2001/01/04(木) 01:58
>>590
ボタンクリックしたままボタンのそとにマウス移動して離してみ?
結果が知りたい
CreateWindowのパラメータ(引数)がおかしいんじゃない?

ついでに、visualC++初心者どころかPC初心者臭いので
激打でもやっていたほうが良い人がちらほら・・・
しかし、9分もかかるかね〜

592 名前:デフォルトの名無しさん :2001/01/04(木) 04:53
590見て思い出したんだけど、
ダイアログでCreateWindowしてボタン作った場合、「画面のプロパティ」とかでフォントの大きさを変更された場合同期してくれなくて困るんですが、なんとかなりませんか?

593 名前:>590 :2001/01/04(木) 06:03
じゃーTrackPopupMenu()のまえに
SetForegroundWindow()を呼んでみるのは同でしょう

594 名前:>592 :2001/01/04(木) 06:10
WM_SETTINGCHANGEかWM_SYSCOLORCHANGE
が飛んでくんじゃなかったかな。

595 名前:590 :2001/01/05(金) 04:53
>>レスして下さった方々

 すいません、解決しました。くだらない低レベルなミスでした。
理由書かないのも失礼な気がするので、一応書いておきます。

while(1)
{
  if( ::PeekMessage( &message, NULL, 0, 0, PM_NOREMOVE ))
  {
    if( !::GetMessage( &message, NULL, 0, 0 ))
      return message.wParam;
    ::TranslateMessage( &message );
    ::DispatchMessage( &message );
  }
  else // ここを忘れてた…
    ::WaitMessage();
}

 上のループで、::WaitMessage(); の前の else を書き忘れてました。

エディットボックスにフォーカスがある時に現象が発生していないと思ったのは、
エディットボックスにフォーカスがあると、0x118 というメッセージが絶えず発生
していたからです。

リソーススクリプトでつくった場合大丈夫だったのは、マクロの DialogBox を使っ
ていたからです。

Spy++で遅れて表示されていたのは、メッセージフックのタイミングが GetMessage
の時だからです。(少し自信無い)

スレ汚しすいません。

596 名前:デフォルトの名無しさん :2001/01/05(金) 15:08
>>592
WM_PAINTでもなんでも好きなの拾えば良い

597 名前:デフォルトの名無しさん :2001/01/08(月) 04:59
if (GetTickCount()>mytimer)
mytimer=GetTickCount()+10;
else
return;
...
...
という処理をやっています。
GetTickCountの戻り値はunsigned int型なのですが、
unsigned intの最大値をmaxとしたときに、
この関数がmax-10のような値を返した場合、
次にこの処理を通過するまでに11ms経過した場合は
どうなるのでしょうか?

598 名前:デフォルトの名無しさん :2001/01/08(月) 05:03
オーバーラップします。>597

599 名前:デフォルトの名無しさん :2001/01/08(月) 05:08
すると困るので597のような処理はしない方がいいのでしょうか?
それともめったに起きないので気にしなくてもいいかな?

600 名前:デフォルトの名無しさん :2001/01/08(月) 05:12
大小で比較するのではなく、差を取る様にすれば解決すると思います。>599

601 名前:デフォルトの名無しさん :2001/01/08(月) 05:24
すいません。ちょっと具体的にどうするのか分かりません>600


602 名前:デフォルトの名無しさん :2001/01/08(月) 05:28
curtimer = GetTickCount();
if (curtimer - mytimer > 10)
 mytimer = curtimer;
こんな感じになると思います。>>601

603 名前:デフォルトの名無しさん :2001/01/08(月) 05:38
認識違いでしたらすいません。
例えばunsigned型ではmaxを超えるとまた0から始まると思っていました。
上の例でmytimer=max-5 の時にGetTickCountがmaxを超えてcurtimer=5と
なってしまうとif文以降の命令が実行できなくなってしまい、解決したよう
には思えないのですがどうでしょうか?

604 名前:デフォルトの名無しさん :2001/01/08(月) 05:40
では実際に確認してください。>603

605 名前:デフォルトの名無しさん :2001/01/08(月) 05:45
この処理で値がmaxを超えることはめったに起きないので
似たようなもので実験してみます。

606 名前:デフォルトの名無しさん :2001/01/08(月) 05:50
unsigned int curtimer, mytimer ;
mytimer = 0xfffffffdUL; //適当なオーバーラップしそうな値
curtimer = 10; //オーバーラップしたと仮定する。
mytimer = curtimer - mytimer;

この時点でmytimerはいくつになっていますか?>>605

607 名前:デフォルトの名無しさん :2001/01/08(月) 05:59
最初にmytimer=max-5とすると最後はmitimer=15になります。
unsignedの計算だからif文の中でやってもこうなるのでしょうか?
大きなマイナスになると勘違いしていました。

608 名前:デフォルトの名無しさん :2001/01/08(月) 06:05
まともな実装をした処理系であれば、ifの中でも同じ結果になる筈です。>>607

609 名前:デフォルトの名無しさん :2001/01/08(月) 06:07
1時間もつきあってもらってありがとうございます。

610 名前:デフォルトの名無しさん :2001/01/08(月) 06:11
いえいえ。がんばってください。>609

611 名前:マジレスさん :2001/01/08(月) 14:16
つぎのVCはMFCがなくなり、なんかやわなVB
と同じCLRとかいうのを使わなければいけない
と聞いたのですがMFCの知識はまったく無駄に
なるんですか?

612 名前:奥さん、名無しです :2001/01/08(月) 14:25
無くなりはしないでしょ。


613 名前:マジレスさん :2001/01/08(月) 14:57
いやMFCは亡くなる予定らしい。

614 名前:デフォルトの名無しさん :2001/01/08(月) 15:08
次のVCではMFCはなくなりません。
しかし、いずれはADOの陰に隠れたDAOのようになるでしょう。

615 名前:マジレスさん :2001/01/08(月) 16:00
>>614
でもMFCが隠されるということは
もうMFCを学ぶ価値は無いのとちゃうの?

616 名前:デフォルトの名無しさん :2001/01/08(月) 16:59
VC++とMFCはnative Win32アプリ用という位置づけで残るみたい。
手元の雑誌を見ると

MFCの変更点:
* CTime::GetTime64()等の、Y2038対応
* DHTML編集機能をサポートしたCHtmlEditView/Doc/Ctlの追加
* DHTMLサポートのダイアログクラスCDHtmlDialog, CMultiPageDHtmlDialogの追加
* OLEコントロールコンテナのウィンドウレスコントロールのサポート
* HTMLヘルプサポートの強化
* Win2000用プリントプロパティシートのサポート
* STLからiostream.h等の古い実装が削除された
* STLにhash_map, hash_setのテンプレートが追加

だそうだ。長くなるけどついでにVBの方も。

VBの構文周りの変更点:
* Set/Let構文廃止(入力してもIDEに消される)
* Function/Subroutine問わず ret = func(param) の構文に統一
* 引数のデフォルトはByVal(VB6まではByRef。これも省略するとIDEがByValを自動
付加する)
* 多重宣言(Dim a,b As Integerで両方ともIntegerとする)のサポート
* 配列の添え字は0オリジン(Option Baseステートメントは廃止)
* 配列の宣言で指定する値を要素数に変更(VB6までは最大値の指定だった)
* Integer,Longのサイズ変更
* Variantは廃止。かわりに(CLRの)Objectを使う
* Currencyも廃止。かわりにDecimalを使う
* 宣言時初期化のサポート
* オプション引数にはデフォルト値設定が必須になった
* キャストが必須になった
* 自己代入演算(i += 1みたいの)のサポート
* 条件節の評価順が明文化された(左から評価して偽となった時点で中止する)
* 条件演算子とビット演算子を分けた(ビット演算にはBitAnd, BitOrを使う)
* 条件節に書ける条件はBool値のみ
* 構造化例外のサポート(Try, Catch, Finally, End Try)
* デフォルトプロパティへのアクセス禁止(Label = "hoge"みたいのは駄目)
* 1つのプロパティ宣言内にSet/Getを書くようになった
* 変数のスコープがブロックになった(ただし外側で定義している変数名を内側
で使うと構文エラーになるらしい。使えん)
* ファイルの拡張子は全て.vb

.NET関係既にいくつか日本語の書籍が出てきてるんで、いざ.NETが出てから
ハマらないよう、今のうちから情報収集しといた方がいいと思う。

617 名前:マジレスさん :2001/01/08(月) 17:10
>>616
つうことは今までの知識じゃ.NETは使えへん
ちゅうことか?

618 名前:616 :2001/01/08(月) 17:15
>>617
今までの知識っていうのは、Win32 APIの知識とかMFCの知識って事?
だとすればYES。.NET対応のプログラム書くなら、C++であってもCLRのクラス
を使うことになる。

619 名前:616 :2001/01/08(月) 17:24
補足。今までと違うのは、C++だろうがVBだろうがC#だろうがJScriptだろうが、
サードパーティが対応させた言語(富士通はCOBOLを対応させるようだが笑。
あとInpriseがどう動くのかわからんけど、仮にBCBとかDelphiとか対応したら
そこでも)全て同一のクラスが使える、という事。
# もちろん自分で作ったクラスもどの言語からでも使えるようになる。

まぁpremitiveな所はもうCLRに用意されてしまっているので、その辺を作る
楽しみはなくなってしまうけれども。

620 名前:デフォルトの名無しさん :2001/01/08(月) 17:32
どーせ、ActiveXとおんなじだよ。
過度の期待はしないほうがいいと思うね.

621 名前:マジレスさん :2001/01/08(月) 17:43
じゃ今必死こいて勉強しているSDKプログラミングはもうすぐ
無用の知識になっちゃうわけ?
この前SDKに詳しくなったほうがいいよと
いわれたばかりなのに(涙

622 名前:マジレスさん :2001/01/08(月) 18:15
でも.NETって簡単には普及しないと思うよ。
だって開発方法がかなり変わるから
ついてこれない人もたくさんいると思うもん。

623 名前:名無しさん@お腹いっぱい。 :2001/01/08(月) 18:58
.NETではpythonみたいに動的にクラスを修正するとかはできるんかいな

624 名前:名無しさん@お腹いっぱい。 :2001/01/08(月) 19:00
あとC#は多重継承やfriend機能がないけど、.NETクラスは対応してるの
かな。(連続カキコスマソ)

625 名前:616 :2001/01/08(月) 20:55
>>620
俺は別にMS派って訳ではないんだけど、今までのCOM/ActiveXと同列に考えちゃ
うのはすごく損してると思うよ。

まぁMSの事だからしばらくはバグのオンパレードで使い物にならんかもしれない
けど、色々資料読んだり.NET SDKのBeta触ったりしてる限りでは、従来必須だっ
たCOMの糞面倒くせえ手続きやレジストリ/バージョン管理に悩まなくて済むよう
になるのは大歓迎。

ただ、全てを.NETに移行させる必要はないと思う。
例えば(例が偏ってるが)cd2wavだのgogoだのと言ったパフォーマンス重視のアプ
リとか、ひたすら軽さを追求したいような場合、COM/ActiveXとは無縁の世界では、
従来通りC/C++でSDKなりMFCなりで作ればいい。

# VB.NETは完全にCLR環境向けになってしまうようだけど

.NET使って便利そうな分野は、今までperlやらpythonやらrubyやらでお手軽プロ
グラミングしていた分野とか、業務系アプリ/業務フレームワーク構築とか、今
まで苦労して.ocx作っていたようなコンポーネント関係、あとMSが特にpushして
るWeb関連かな。

# 個人的にうれしいのは、好きな言語でお手軽プログラミングできるようになる
# って所かな

>>623
不勉強でpythonの動的クラス修正ってのがどんなものなのか知らないのだけど、
Javaのreflectionみたいな感じなのかな? C#にもreflectionはあるみたいだね。
詳細はまだ把握してないけど。

>>624
資料読む限りでは対応してなさそうな感じ。というか、CLRが対応してるんだっ
たらC#の仕様に盛り込むんじゃないかな。

626 名前:デフォルトの名無しさん :2001/01/08(月) 21:04
> 従来必須だっ
> たCOMの糞面倒くせえ手続きやレジストリ/バージョン管理に悩まなくて済むよう
> になるのは大歓迎。

つまり、ActiveXやCOMでめんどくさい手続きが
なくなったもんってだけでしょ?

.NETって単にそれだけなん?
そしたら、ActiveXが登場した時と触れ込みは同じじゃない?
それの何が変わるの?

なんも状況変わらないと思うんだけど?
>>625詳しそうだから教えて。

627 名前:not 625 :2001/01/08(月) 22:49
>>626
つーか今回は言語仕様そのものが変わるんだけどね。
何が云いたいのかもう少し具体的に書かないと。
MS叩き大好き厨房じゃないんだろ?

628 名前:質問厨房 :2001/01/11(木) 19:52
VC++を使った
Winアプリの作成方法が
詳しく解説されている
ホームページってありますか?
本を買うのも良いんですが
その前に少し基本的な事を勉強したいんです、
教えてください、お願いします。

629 名前:デフォルトの名無しさん :2001/01/11(木) 19:59
猫でもわかるプログラミング
URLは検索エンジンでしらべよ。

630 名前:質問厨房 :2001/01/11(木) 20:24
>>629
そのHPってSDKとC++を使った
Winアプリの作り方を説明してますよね?
そうじゃなくて、VC++を使ったアプリ作成方法が知りたいんです。
VC++の使い方からツールの説明とかも、
できればチュートリアル形式で説明してくれると嬉しいんですが…
そんなHPなんて無いですかね?

631 名前:ヘボ学生 :2001/01/11(木) 20:49
くそすれを建てたようなのでこちらでお聞きします。
VC++,VBの学割版と標準版の違いは何ですか?
値段以外に何がちがうのでしょうか。
作れるソフトの性能の限界に差があるのでしょうか?


632 名前:デフォルトの名無しさん :2001/01/11(木) 20:49
>630
MFCはマゾヒスティックな迄のトレースが基本。苦行。
SDKとバックグラウンドの動作を片っ端から知ってないと
誤動作した時に鬱になります・・・
けど苦痛もそのうち快感に変わってくるので大丈夫
難しいのは最初だけでそのうち麻痺して忘れます

633 名前:625 :2001/01/11(木) 21:41
>>627
いや、確かに全体を見た場合、決定的に違うのはそれだけだとも言える。
ただCOMの最大の弱点(というか欠陥と言ってもいい)がなくなれば、もちっと
安心して使えるようになるだろう、という話。それを「なんだ今までと変わら
ねーじゃん」と思うか「これでやっとコンポーネントプログラミングを本格的
にやれる時代になるかな」と思うかは人それぞれだろう。

# 2番目の弱点は、後付けだった為にヘボすぎたセキュリティ周り。これは今
# 出回ってるC#/.NETの書籍だとほとんど触れられてない(まぁちょうちん記事
# に毛が生えたようなもんだし、書いてる方もまだそこまでチェックしきれて
# ないんだと思う)んで、ちょっと後回しにしてる。

俺が今色々調べてるのは、例によって「それで何ができて何ができないのか。
どこに問題があるのか」というのを把握しないで「COMはもう古い。これからは
.NETだ」とかアホな理由で最先端を突っ走ろうとする馬鹿から自分を守る為な
ので、.NETの正式版がリリースされたからと言ってすぐに使う事はないと思う。

例によって最初は盲目的なMS信者が突っ走るだろうから、問題があった時に
最初にハマる役はそいつらに任せておけばいい。俺は(COM/ActiveXの時もそう
だったけど)後ろから状況を観察して「これならいけそうだな」「駄目だこりゃ」
を判断する予定。

で、それを判断する為にも今のうちから情報収集はやっとくと。

634 名前:デフォルトの名無しさん :2001/01/12(金) 12:23
MFCのCViewにスクロールつけるために
こんなクラス作る僕は逝ってよしですか?
実装部は想像つくと思うので省略、全部CView::(Set||Get)ScrollInfo()使ってます

class CScroll
{
public:
CScroll();
virtual ~CScroll();
CPoint GetScrollPosition();
CSize GetScrollPage();
CSize GetScrollRange();
BOOL SetScrollPosition(CPoint ptPos, BOOL bRedraw = TRUE);
BOOL SetScrollPage(CSize sizePage, BOOL bRedraw = TRUE);
BOOL SetScrollRange(CSize sizeTotal,BOOL bRedraw = TRUE);
BOOL Create(CView* pView, CSize sizeTotal=CSize(1,1), CSize sizePage=CSize(3,3));

private:
SCROLLINFO m_siVert;
SCROLLINFO m_siHorz;
CView* m_pView;

};


635 名前:デフォルトの名無しさん :2001/01/12(金) 12:55
>値段以外に何がちがうのでしょうか。

他人に譲渡不可

636 名前:デフォルトの名無しさん :2001/01/12(金) 18:42
同志>>634、CScrollViewではダメでしょうか?
MFC、ハラショー!

637 名前:634 :2001/01/12(金) 19:20
>CScrollViewではダメでしょうか?
CScrollViewって16bit範囲しかスクロールできませんよね?
ScrollInfo使うと32bit範囲で出来るっぽいし、スクロール単位を変えれば
いいんですが、そんなことするよかこっちのが手っ取り早いかなと(^^;


638 名前:デフォルトの名無しさん :2001/01/12(金) 19:21
メニューバーのアイテム編集について教えてください
環境はVC++6.0 です
GetMenuItemInfo関数ですが
下のような書式で失敗します
どうしたら良いのでしょう?
もしかして、渡す構造体の中身を編集しなきゃならないのでしょうか?

hMenuについては、EnableMenuItemは機能しているので
確実に取れていると確信しています

---------------以下問題部分抜粋-----------------------------

MENUITEMINFO MenuItemInfo;
HMENU hMenu=GetMenu(hWnd);

GetMenuItemInfo(hMenu,0,TRUE,&MenuItemInfo);
EnableMenuItem((hMenu,0,MF_BYPOSITION | MF_GRAYED);//確認用


639 名前:デフォルトの名無しさん :2001/01/12(金) 22:23
MenuItemInfoのcbSizeをセットしましょう。

>確実に取れていると確信しています
ちょっと笑った。

640 名前:638 :2001/01/12(金) 22:29
セットしてみたんですけどダメでした
最終的にdwTypeDataを変更したいので
構造体のサイズを変更してもみたんですが
MenuItemInfo=(tagMENUITEMINFO*)malloc(sizeof(MENUITEMINFO)+??);
で問題ありますか?


641 名前:デフォルトの名無しさん :2001/01/12(金) 22:50
MENUITEMINFO MenuItemInfo;
TCHAR szT[256];
ZeroMemory(&MenuItemInfo, sizeof(MenuItemInfo));
MenuItemInfo.cbSize = sizeof(MenuItemInfo);
MenuItemInfo.fMask = MIIM_DATA;
MenuItemInfo.dwTypeData = szT;
MenuItemInfo.cch = sizeof(szT);

GetMenuItemInfo(hMenu, 0, TRUE, &MenuItemInfo);

だと思う。未確認。


642 名前:デフォルトの名無しさん :2001/01/14(日) 14:55
寂しいのでage

643 名前:... :2001/01/14(日) 21:59
COMがエラーした時にイベントビューアに出てくる呼び出しスタック
はデバッグにどう役立てるのでしょうか。

644 名前:デフォルトの名無しさん :2001/01/14(日) 23:28
だれか教えてください。
ダイアログベースでソフトを作っているんですが、
そいつを起動したままWindowsを終了させるとデストラクタが呼び出されません。
Windows終了時によびだされる関数ってありませんか?


645 名前:デフォルトの名無しさん :2001/01/15(月) 00:02
>>644
CWnd::OnQueryEndSession

WM_QUERYENDSESSION

らしい。
使ったことないから分からないけど

646 名前:デフォルトの名無しさん :2001/01/15(月) 04:10
WinMe/2K で GetOpenFileName ダイアログの左側に
「履歴」「デスクトップ」「マイコンピュータ」などの
でかいアイコンが表示されるようになったようですが、
フック関数を設定するとそれらが表示されません。

フックが必要なものと不要なものとで見た目が著しく
異なってしまい困っています。全てフックしてアイコンを
出さないのも可能ですが、なるべく全てのダイアログで
アイコンを出したいと思います。何か手段はご存知ないですか?

647 名前:644 :2001/01/15(月) 07:47
>>645
ありがとうございます!!
さっそく試してみます

648 名前:デフォルトの名無しさん :2001/01/15(月) 17:12
リッチエディットで、現在表示されている行数を得るにはどうしたら良いんでしょう?
クライアント領域をフォント高さで割る・・・しか無いのかなぁ?

649 名前:ァボン学生 :2001/01/16(火) 00:55
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ

650 名前:デフォルトの名無しさん :2001/01/16(火) 21:20
age
VisualC++って人気ないのね(^^;

651 名前:完璧な入力補助機能付きEditBox :2001/01/16(火) 23:21
CEditから派生してEditBoxを作っています。
IEのアドレスの部分のように、途中まで入力すると残りが表示される
入力補助機能をつけようとしているのですが、うまくいきません。
文字が増えていく、所謂通常時の処理はできるのですが、
文字が減っていく、所謂削除していく時の処理が難しいです。
IEのアドレスの部分も完璧ではありませんでした。
hと入力すると
h ttp://www.2ch.net/2ch.html
と出ますが、
tp://www.2ch.net/2ch.html
の部分をマウスで選択して
右クリック->削除
とすると一回目は削除された後、もう一度補助機能が起動してしまい、
正しく動作しません。
完璧な入力補助機能付きEditBoxを作るにはどうすればいいのでしょうか?

652 名前:IEのアドレス :2001/01/16(火) 23:25
http://www.2ch.net/2ch.html
が出てきた後
tp://www.2ch.net/2ch.html
を削除すると
ht
と入力されたのと間違えられ、誤動作するということです。


653 名前:IEのアドレス :2001/01/16(火) 23:29
http://www.2ch.net/2ch.html
が出てきた後
tp://www.2ch.net/2ch.html
を削除すると
ht
と入力されたのと間違えられ、誤動作するということです。


654 名前:デフォルトの名無しさん :2001/01/16(火) 23:35
全体の長さと入力された所までの長さを比べて、
減ってたら補助機能を実行しないってんじゃダメ?

655 名前:651 :2001/01/16(火) 23:41
>>654
普通に
ht
と入力しても
http://www.2ch.net/2ch.html
より短いですからダメです。

キーダウンイベントを検知して
「入力された」を判断するようにしても
IEと同じあやまちをおかすだけでした。

656 名前:デフォルトの名無しさん :2001/01/17(水) 01:24
どこに書こうか迷ったのですが、ここに書かせていただきます。
PDFフォーマットの文章で印刷禁止のものがありますが、
これをプログラム的に読み込んで印刷する方法はないのでしょうか?

一回AcrobatReaderを起動した後に、自分のウィンドウに描画する
ビューワーをみたことがあるのですが、そこまで出来れば印刷も出来そうな気がするのです。



657 名前:デフォルトの名無しさん :2001/01/17(水) 10:03
リストボックスに出力する文字列の色をかえるってことは
できますか?

658 名前:デフォルトの名無しさん :2001/01/17(水) 16:44
VC++って評価版とか無償ダウンロードできないの?
VBはできるけど・・・。

659 名前:デフォルトの名無しさん :2001/01/17(水) 17:12
>VBはできるけど・・・。
そうなの?教えてれくれです。
CCEのことじゃ無いよね。

660 名前:C303ユーザー :2001/01/17(水) 18:52
>>658
WindowsCE 版の VC&VB(英語)なら、無償ダウンロード可能
http://www.microsoft.com/mobile/downloads/emvt30.asp
WindowsCE の日本語版なら、送料かかるけど、入手可能。
http://www.microsoft.com/japan/windows/embedded/ce/tools/emvt30order_J.asp

661 名前:デフォルトの名無しさん :2001/01/18(木) 15:46
サービスへ登録(インストール)する時、
「手動」でなく「自動」で登録できる?

662 名前:デフォルトの名無しさん :2001/01/18(木) 16:02
CreateServiceのdwStartTypeにSERVICE_AUTO_STARTを指定すべし。

663 名前:デフォルトの名無しさん :2001/01/18(木) 16:05
VCからExcelのワークシートを読み込みたいんですが、参考になるサイトとかありませんか?

664 名前:デフォルトの名無しさん :2001/01/18(木) 16:15
uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

665 名前:デフォルトの名無しさん :2001/01/18(木) 16:16
はやくさげろ!


666 名前:秀樹 :2001/01/18(木) 16:44
虚数の入った行列計算をしてるんですけど
jをどのように扱えばよいのでしょうか?教えて下さい

667 名前:秀樹 :2001/01/18(木) 17:00
#include <stdio.h>
main()
{
unsigned char j;
int x,y,z,a[4][4]= {1,1,1,1,1,-j,-1,j,1,-1,1,-1,1,j,-1,-j},
b[4][1]={1,1,0,0} , c[4][1]={0,0,0,0};

for(x=0; x<4; x++)
for(y=0; y<4; y++)
for(z=0; z<1; z++)
c[x][z] += a[x][y] * b[y][z];
for(x=0; x<4; x++) {
for(z=0; z<1; z++)
printf("%3d",c[x][z]);
printf("\n");
}
}
これからわかりません

668 名前:デフォルトの名無しさん :2001/01/18(木) 17:29
データ構造が間違ってる
typedef struct DATA{
 int real ;       //値
 int imaginary;    //虚数
}DATA
最低でもこれくらいだろ?
もっとも、Bit演算使えばもっと楽にできる

また、Cには
complex型というものもあるが
どうせ、宿題かなんかだろ?


669 名前:デフォルトの名無しさん :2001/01/18(木) 20:29
CTreeCtrlって難しくてわからないんですが。。
どなたか教えて頂けませんか?教えて君で申し訳ないと思うんですが、
教えて君にならざるをえないほどわからにゃい。。

670 名前:ageあし鳥 :2001/01/18(木) 20:32
>また、Cには
>complex型というものもあるが
また、C++には
complex型というものもあるが


671 名前:デフォルトの名無しさん :2001/01/18(木) 20:44
>>669
何処まで分かってるのか何がわからないのか
それを提示するのが礼儀、ってか常識

672 名前:669 :2001/01/18(木) 21:02
そうですね。。。スマソ
とりあえずサンプルを見ながらツリーの中に自分の好きな項目を
列挙することができた。コピペなのがさびしいが。。。
 すぐに詰まると思うんでまた現れます。

673 名前:デフォルトの名無しさん :2001/01/19(金) 01:45
どうもCStringで納得いかない点が・・・
なんでGetAtで最後の文字取得が出来ないんでしょ?

nIndexが0以上はわかるけど、なんでGetLength()より小さくないといけないの?

674 名前:デフォルトの名無しさん :2001/01/19(金) 01:52
GetLength()-1

675 名前:デフォルトの名無しさん :2001/01/19(金) 01:52
GetBufferの方が納得逝かん

676 名前:デブの名無しさん :2001/01/19(金) 01:56
VC++7っていつでるの?

677 名前:デフォルトの名無しさん :2001/01/19(金) 01:59
>>675
いまHELP見たけど・・・
引数がよくわからん・・・・

678 名前:デフォルトのゲイツさん :2001/01/19(金) 02:05
>>676
C#に移行しなさい!!

679 名前:でるpはい :2001/01/19(金) 02:07
delphiとどっちがいいの?難しさとかじゃなくて、機能性。
作ったプログラムの動作の軽さ

680 名前:デフォルトの名無しさん :2001/01/19(金) 02:15
MSDNライブラリのお気に入りは、どこに保存されてますか?
いちど消えちゃったんで、バックアップろとっときたいのですが、、、

681 名前:デフォルトの名無しさん :2001/01/19(金) 02:51
>>679
作るの簡単+見た目も綺麗がD。
実行速度が若干速いのがCらしい。
自分はVCしか使ったことないけど。
まあDの方が作られたの新しいから優れているのは当り前?なんじゃない?

682 名前:673 :2001/01/19(金) 10:32
CStringの続き・・・
なんで一文字の文字列にDelete使えないの??
はぁ・・・文字列クラス自前で準備したほうがいい??
CStringListつかってるけど、全部自前の方が良いのかな・・・・

683 名前:デフォルトの名無しさん :2001/01/19(金) 10:41
ダイアログベースのアプリを作っています。
エディットコントロールを張り付け複数行にメッセージを書きたい(プログラム側から)のですが
改行してくれません。。
エディットコントロールの方は「スタイル」タブの"複数行"、"改行を許可"にチェックしてあります。
CEditはceとして、
CString cs = "一行目\n二行目\n\r三行目";
ce.SetWindowText(cs);
としてあります。

結果は「一行目・二行目・・三行目」です。。教えて下さい。

684 名前:デフォルトの名無しさん :2001/01/19(金) 10:46
>>683
改行は
\r\n
じゃなかったっけ??

685 名前:デフォルトの名無しさん :2001/01/19(金) 10:53
サービスでスタートアップ時から「開始」に設定するにはどうすれば
いいの?

686 名前:683 :2001/01/19(金) 10:54
>>684
すいませんん。。\r\nでしっかり改行されました。。
MSDNを探したんですが、見つからなくて。どうもありがとうございます!

687 名前:673 :2001/01/19(金) 12:13
>>674
あ・・・・
もしかしてGetLengthは'\0'含めてる??

もしそうだったらただのアホだ・・・

688 名前:673 :2001/01/19(金) 12:19
そうだよ・・・・[文字列の長さ-1]までに決まってるよ・・・
MS様ごめんなさい、逝って来ます

689 名前:名無しさん@お腹いっぱい。 :2001/01/20(土) 15:51
pDC->BitBlt(省略);←ビットマップを連続して書き込むとチラつくけど、
ゲームとか大量のスプライトを使っているのにぜんぜんちらついてないのは
なぜ?ちらつかない解決方法おしえて。

690 名前:SAGE :2001/01/20(土) 19:41
>689

いったん裏画面に描いてからそれをBitBlt一発で転送。などなど。

691 名前:デフォルトの名無しさん :2001/01/20(土) 20:52
>690さん 裏画面の最初だけでもソースで教えてください。
バグがあるらしく画面に描画できないんです。(コンパイルは通る)



692 名前:SAGE :2001/01/20(土) 22:00
CDC subDC;
CBitmap subBmp, *pOldBmp;

subDC.CreateCompatibleDC( pDC );
subBmp.CreateCompatibleBitmap( pDC, width, height );
pOldBmp = subDC.SelectObject( &subBmp );

つーかゲームなら素直に DirectX 使った方が。

693 名前:デフォルトの名無しさん :2001/01/20(土) 22:53
692さん できました。ありがとうございます。
     

694 名前:デフォルトの名無しさん :2001/01/20(土) 23:30

 ゲームの裏画面としてはDIBSectionが良いと思う。
CBitmapだとフレームバッファベースでないから画像
処理がほとんど出来ないし、DirectXは扱いにくいか
らね。


695 名前:スポックの耳 :2001/01/21(日) 01:21
MFCを使ってダイアログベースのアプリを作っています。
メニューの扱い方が分からないので誰か教えてください。

ダイアログリソース作成時にメニューリソースを関連付けて、メニュー
バーを張り付けているのですが、いざメニューの処理を実装しようと
する段階で行き詰まってしまいました。
メニュー項目の有効/無効、チェックを切り換えるためにMSDNのサンプル
にならって メニュー項目の ON_UPDATE_COMMAND_UI ハンドラを作った
のですが、メニューがプルダウンしたタイミングに呼び出されず、項目を
選択した際に呼ばれます。
更新ハンドラを使った方法はダイアログ(CDialog)ベースの場合は使えない
のでしょうか?


696 名前:デフォルトの名無しさん :2001/01/21(日) 02:26
>更新ハンドラを使った方法はダイアログ(CDialog)ベースの場合は使えない
>のでしょうか?
そうらしい。
ひどいもんだね。
自分でWM_INITMENUPOPUPで処理するしかなさそう。

>メニューがプルダウンしたタイミングに呼び出されず、項目を
>選択した際に呼ばれます。
これは正常な動作。本当に実行していいかチェックしている。

697 名前:激・初心者 :2001/01/21(日) 14:11
MFC(ダイアログベース)にActiveX(OCX)を埋め込み、
MFCからOCX内の関数にアクセスしようとすると例外が発生してしまいます。
MSDNの通りに処理してるはずなんですが・・・。

CoCreateInstanceするだけじゃocxは使えないのでしょうか?

#ついにここに書き込んでしまった・・・。



698 名前:デフォルトの名無しさん :2001/01/21(日) 14:20
>>697
ソース見ないと分からないな

699 名前:激・初心者 :2001/01/21(日) 15:32
>698
えー私が行ったやり方は
クラスウィザードで「クラスの追加→タイプライブラリから」を行い。
ダイアログにOCXを貼り付けます。

そしてオブジェクトの生成部分は以下の通りです。

HRESULT hr = CoInitialize(NULL);
if (FAILED(hr)) {
MessageBox("CoInitialize Failed");
MyExit(); //終了関数に・・・
}
else {
MessageBox("CoInitialize succeeded\n");
}

IFoo * pIFoo;
hr = CoCreateInstance(CLSID_MyObject, NULL, CLSCTX_ALL,
IID_IFoo, reinterpret_cast<void **>(&pIFoo));
if (FAILED(hr)) {
MessageBox("CoCreateInstance Failed");
MyExit() //終了関数に・・・
}
else {
MessageBox("CoCreateInstance succeeded");
}

pIFoo->Func1(); //OCX内の関数へアクセス ←ここで例外エラー

多分なにか初歩的なミスをしているんでしょうね^^;

700 名前:698 :2001/01/21(日) 23:26
ごめん。流石にこれじゃ分からない。
とりあえずIUnknown->AddRef()は動くのか?

701 名前:激・初心者 :2001/01/22(月) 10:42
AddRef()ですか?
すみません、pIFoo->AddRef()のことでいいのでしょうか^^;
普通はOCXのインスタンスだったらAddRef()はサポートされてるはずなんですよね?
やはり、基本的なところが出来てないのでしょうか?



702 名前:デフォルトの名無しさん :2001/01/22(月) 19:50
質問させてください

現在SDIで2つのView(CEditViewの派生)を持ったエディタを作っていますが、
View1(エディタ部)で起きたイベントに対応してView2(メッセージ表示部)にメッセージを表示させるにはどうしたらよいですか
具体的にはVisualCのコンパイラのように
「エラーのあった箇所をView2に表示」みたいな処理をしたいのです
View1でのエラーチェックに引っかかった場合、
その場所からView2のSetWindowText等を呼んでやったら
"protectedメンバにはアクセスできないよー"と言われてしまいました

この処理を実現させるにはどうしたらよいですか?
助けてください


703 名前:698 :2001/01/22(月) 23:39
>701
とりあえずこーやってみては。

IUnknown* pUnk = NULL;
hr = CoCreateInstance(CLSID_MyObject, NULL, CLSCTX_ALL,
IID_IUnknown, reinterpret_cast<void **>(&pUnk));

hr = pUnk->QueryInterface(IID_IFoo, reinterpret_cast<void**>(&pIFoo));
pIFoo->Func1();

704 名前:デフォルトの名無しさん :2001/01/23(火) 00:20
きえあげ

705 名前:>702 :2001/01/23(火) 00:41
CEditViewの派生クラスを仮に
CFoo1(編集用)
CFoo2(表示用)
とさせてください。

まずCFoo1クラスにCFoo2クラスのポインタを格納するメンバ変数を用意します。
例:CFoo2 m_CFoo2;
後はCFoo1のコンストラクタでCFoo2のポインタを格納してやればOKです。
後は普通にCFoo1の中で
m_CFoo2->SetWindowText(〜);
ってやってください。

706 名前:705 :2001/01/23(火) 00:44
あ、CFoo2のポインタの格納は別にコンストラクタにこだわらなくても平気ですよ。
CFoo2のポインタにアクセスがかかる前に格納されていれば。
逆に言うとCFoo2にポインタが格納される前にm_CFoo2->ってやっちゃうと
致命的エラーになります

707 名前:705 :2001/01/23(火) 00:47
705の例に記述ミス。
×:CFoo2 m_CFoo2;
○:CFoo2* m_pCFoo2;
ごめんなさいね…
ところで
m_pCFoo2 = &this;
みたいにポインタを入れてやる方法はわかりますよね?


708 名前:>707 :2001/01/23(火) 00:49
thisはポインタ。
&thisはポインタのポインタだろ。
またミス。

709 名前:702 :2001/01/23(火) 01:01
702です。レスどうもです
えーと現在実行中なのですが・・
エラーでまくりました。

概論はわかったのですが、肝心なところがいまいち分かってないかもしれないです

CFoo1のコンストラクタでCFoo2のthisポインタを取得するってことですか?
そんなアクロバットな事ができるんですか??
ていうか勉強不足です。すみません・・・

現在奮闘中・・・

710 名前:702 :2001/01/23(火) 01:03
702です。レスどうもです
えーと現在実行中なのですが・・
エラーでまくりました。

概論はわかったのですが、肝心なところがいまいち分かってないかもしれないです

CFoo1のコンストラクタでCFoo2のthisポインタを取得するってことですか?
そんなアクロバットな事ができるんですか??
ていうか勉強不足です。すみません・・・

現在奮闘中・・・

711 名前:デフォルトの名無しさん :2001/01/23(火) 01:20
>>702
View2のEditに表示するための公開メンバ関数をView2のクラスの中に作ればいいのでは?

712 名前:>702 :2001/01/23(火) 01:29
>そんなアクロバットな事ができるんですか??
CFoo2をCFoo1より先に宣言して

CFoo2 cfoo2;
CFoo1 cfoo1;
cfoo1.m_pCFoo2 = &cfoo2;

ってやればなんとかなるのでは?
コンストラクタ使うなら

CFoo1::CFoo1(CFoo2* cfoo2)
{
m_CFoo2 = cfoo2;
}
Foo::Init()
{
CFoo2 cfoo2;
CFoo1 cfoo1(&cfoo2);
//・・・後の処理・・・
}

みたいな感じでどう?

713 名前:デフォルトの名無しさん :2001/01/23(火) 01:34
class CFoo2 : public CEditView
{
public:
void SetWindowText2(LPCSTR lpText);
}

void CFoo2::SetWindowText2(LPCSTR lpText)
{
SetWindowText(lpText);
}


714 名前:702 :2001/01/23(火) 01:45
702です
完全に自分の実力不足ですね・・

>>712さん
CFoo等を呼び出すのはMFC側ですよね?
自分で呼び出した記憶が無いので・・・
それとFoo1のコンストラクタをFoo2のポインタを受け取るように書き換えてみましたが、
MFCの生成したマクロに引っかかってエラー出ました
結局CFoo1の中でCFoo2のオブジェクトが作成できません・・・

>>711さん
>>713さん
試してみましたが、
CFoo1の中でCFoo2のオブジェクトが作れないので失敗しました
最後の手段としてCFoo2のコンストラクタを(MFCが生成した)protectedからpublicに変えてみましたが
いろんなところで引っかかって駄目でした
でもCFoo2のオブジェクトさえ作れればこれで実現できますね!
ありがとうございます

715 名前:デフォルトの名無しさん :2001/01/23(火) 09:29
>>702
ぱっと思いついたんですけどメインフレームかどっか上位Windowを経由して
通信できないですかね?


716 名前:デフォルトの名無しさん :2001/01/23(火) 17:44
VC++6.0 参考書を買ったばかりなのですが、
オススメの参考書なんかありますか?

717 名前:まじめな話 :2001/01/23(火) 17:46
MSDN。。。いや、言いたいことはわかる。が。。。

718 名前:デフォルトの名無しさん :2001/01/23(火) 18:46
↑ほんとの話
マジで無い
中途半端なグラフィック関連に逃げていく本バッカ

719 名前:デフォルトの名無しさん :2001/01/23(火) 18:59
>>716
無い。>>717が正しい気がする。
なんか一冊本買って、ダメだとおもったらMSDNとwebで検索しよう。
新境地でコーディング出来るゾ!

720 名前:デフォルトの名無しさん :2001/01/23(火) 19:12
>>716

2ちゃんねる掲示板

721 名前:デフォルトの名無しさん :2001/01/23(火) 20:07
>>716
VC++を云々言うより、
CとかC++の文献を探した方がいいんじゃない?いい文献も多いし。
VC++から始めるのはキツイよ
とりあえずCからね。
#もし君がCかC++を既に習得してるならスマソ

722 名前:名無しさんi486 :2001/01/24(水) 01:37
>>716
MFCのソース。いやまじで。

723 名前:名無しさんi486 :2001/01/24(水) 01:39
あれ?MFCの事じゃないんだね。氏のう。

724 名前:702 :2001/01/24(水) 03:38
ども。702です
自己解決しました
MSDNやら参考書やらでドキュメント・ビュー・アーキテクチャを勉強してやっとできました
みなさんお世話になりました(感謝)

では

725 名前:デフォルトの名無しさん :2001/01/24(水) 11:03
再起動後にファイル及びフォルダを削除するという事をしました。
まずWinNTでは、MoveFileExでファイル&フォルダを削除する事が
出来たのですが、
Win98では、対応していないためできません。
そこでWindowsディレクトリのWININIT.INIへ
[Rename]セクション、
NUL=削除したいファイルのフルパス
としたのですが、フォルダは消えません。
どうしたらいいのか教えて下さい。

726 名前:デフォルトの名無しさん :2001/01/24(水) 11:14
超初心者的質問です。

MFCのdoc&viewをやろうとしていますが、xxxView.hの、

class CxxxView : public CView
{
protected://....

の部分の、
//アトリビュート
//オペレーション
//オーバーライド
//インプリメンテーション

ってなんですか?
自分で新たにCxxxViewクラスで使うメンバ変数なんかを書き加えるときは、
オペレーションの部分でいいのでしょうか?

727 名前:デフォルトの名無しさん :2001/01/24(水) 13:28
>>726
お好きにどうぞ。コンパイラはコメント文は読まない。

728 名前:デフォルトの名無しさん :2001/01/24(水) 15:25
コメントにSunマンセー糞M$死ねとか書くと原因不明のエラーがでたりして。

729 名前:名無しさん@お腹いっぱい。 :2001/01/26(金) 00:03
AfxBeginThreadでスレッドを作って、そのスレッドの中からウインドウを操作したいのですが、どうしたら良いのでしょうか?
スレッドないの変数をTimerで定期的に読み出す方法以外に良い方法があれば
教えてください。


730 名前:デフォルトの名無しさん :2001/01/26(金) 00:34
>>729
その thread に「操作されるウィンドウ」のハンドルを渡しておいて、thread 内からウィンドウメッセージを投げる。

731 名前:デフォルトの名無しさん :2001/01/26(金) 00:48
ウルトラ初心者な質問です!
外部依存関係の中にファイルを追加したいのですけど、どうやって追加すればよいのでしょうか?かれこれ一時間悩んでいます。

732 名前:デフォルトの名無しさん :2001/01/26(金) 00:51
何の話だ?makefile書けやw

733 名前:デフォルトの名無しさん :2001/01/26(金) 01:05
>>731
ファイルをプロジェクトに追加してください

734 名前:デフォルトの名無しさん :2001/01/26(金) 10:18
教えてください。
ダイアログベースで自由に描画(SDIのドキュメントのように)出来るように
するにはどうしたら良いのでしょうか?

735 名前:名無しさんi486 :2001/01/26(金) 10:49
>>734
OnPaint()に書けや

736 名前:デフォルトの名無しさん :2001/01/26(金) 10:52
>>735
On_Paintじゃダイアログごと書き直す事にならないですか?

737 名前:名無しさんi486 :2001/01/26(金) 11:47
>>737
ダイアログウィンドウ内に描かなきゃどこに描くんだ?
って言うか、やってみた上での指摘だろうね?

738 名前:デフォルトの名無しさん :2001/01/26(金) 11:58
>>737
オブジェクトとして、その中を書き換えたいんですが、
ダイアログごと描画しなおすと、ボタンや描画しなおさなくて良いものまで
描画しなおすでしょ。
オブジェクトとしてです。734での言葉が足りてませんでした。
すみません。
ボタン操作やタイマー等で、オブジェクトの内容を描画しなおしたいのです。
今はダイアログ自体に描画してみたりしてるんですが、
描画しなおすときにダイアログごと描画しなおすのがどうも嫌なんで。


739 名前:デフォルトの名無しさん :2001/01/26(金) 12:21
MFCの話になってるの?

SDKなら
オブジェクトをサブクラス化すれば解決
ぬぬ?そんな面倒なことしなくても
ハンドル取ってきてメッセージなげればできそうな気がしてきた

MFCの知識はないんでそっちの方はだれかに任せます


740 名前:デフォルトの名無しさん :2001/01/26(金) 13:25
画面上に実物大で表示したいのですが、画面の解像度を取得するには
どうすればいいのでしょうか。CDC::GetDeviceCaps で取得できる値は
なぜかフォント(コントロールパネルで設定するやつ)によって変わる値
のようなのです。

741 名前:デフォルトの名無しさん :2001/01/26(金) 15:08
できました。

742 名前:デフォルトの名無しさん :2001/01/26(金) 15:29
クラスビューの グローバル の中に新規フォルダを作るにはどうすればいいのでしょうか?


743 名前:名無しさんi486 :2001/01/26(金) 16:25
一連の名無しが同一人物では無いことを祈るが...

>>734
解決したんか?すまんが、やりたい事がいまいち掴めない。表現技法の向上を切に望む
なんで全部書き直したくないんの?ちらつくから?
CDC* pDC = GetDC();
でデバコン取って描いちゃえば?そーゆー事じゃなくて?
あとはクリップリージョン使うとか?

>>742 作れないんじゃない?


744 名前:デフォルトの名無しさん :2001/01/26(金) 16:53
>>743
言葉足らずで本当に申し訳ないです。
きちんと書くと、最初SDIでドキュメントを状況に応じて表を描画
(ボタンはツールバーを改造して)、しかしそのドキュメント上に
時計を貼れとか言われて、ダイアログベースにする事になり、
ダイアログ上で表を描画したいのです。
最初全部オブジェクトでやろうとしたら表の中身が255を超えるので
ダメでした。

745 名前:名無しさんi486 :2001/01/26(金) 17:04
>>744
ごめん、まだわかんないや。オレの方がヴァカなのか?

整理すると
・255以上のコントロールを張ってNGだった
・代わりにクライアントへ直書きしたい
ここまでは合ってる?
で、何がわからないの?OnPaint()以外からの描写方法?

リストコントロールでも使ったら?

746 名前:デフォルトの名無しさん :2001/01/26(金) 18:39
WinMeでVC使ってるの俺だけか?
Meじゃ使えない筈なんだがな・・・・・。

747 名前:デフォルトの名無しさん :2001/01/26(金) 19:53
>>743
>>742 作れないんじゃない?

 C 言語のみのですと、クラスビューは、無力という事でしょうか?
 C 言語のみの人は、どうやって、ソースの中を移動するの?




748 名前:ヘボ学生 :2001/01/26(金) 21:52
私は今は学生でVC++は学割で1万ちょっとで買えるんですが、それ以外のものって学割版に比べるととても高いですが、社会人の方々は、それらをちゃんと何万円も出して買われてるのでしょうか?

749 名前:>748 :2001/01/26(金) 22:18
多くの社会人は会社が買ってくれます。
多くのフリーや自営業の方は自分で買ってます。

一部の社会の底辺よりさらに下に位置している会社や人間は違法行為で入手しています。

750 名前:VC++ VB 安いかな? :2001/01/26(金) 22:21
http://user.auctions.yahoo.co.jp/jp/user/xxdolicexx?


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