mcrblog

vcpp-ml

2000年06月

30

[vcpp 00042117] [お礼]配列についての質問

レスが遅れて申し訳ございません。
こんばんは、配列についてお答え頂いた、
甕星さん
道化師さん
石河さん
河野さん
とびびんさん
二木さん
安藤さん
いろいろとお答え頂きありがとうございました。
結果として、高度な技を使わず、小数点になった場合×10などして整数にすることに
致しました。
ありがとうございました。
それでは、失礼致します。


----
N.Chiba  m...@smail1.kanto-gakuin.ac.jp
30

[vcpp 00042116] Re: ComboBoxEx でフォーカス取得イベントが取れない?

宮崎@イーストです。うー

2000/06/30 19:21:55 頃、yoh さんが書いたメールについて

> afx_msg void OnSetFocus(CWnd* pOldWnd);
> ON_WM_SETFOCUS()
> でしょうか?
> 教えていただいたものを実装すると、ON_WM_SETFOCUSで、
> 引数が多すぎる旨のエラーが出ます。

WM_SETFOCUS と、WM_COMMAND/xxN_SETFOCUS では意味合いが
違うものだということにも気付いてください。

前者は「フォーカスを受けるウィンドウそのものに送られる」、
後者は「フォーカスを受けたウィンドウから親ウィンドウに送られる」
ものです。あなたの欲しいのはどっちですか?

-- 
イースト株式会社
宮...@est.co.jp
30

[vcpp 00042115] Re: ComboBoxEx でフォーカス取得イベントが取れない?

馬渕さん、こんにちは。
RESありがとうございます。


馬渕さん wrote:
>ON_EN_SETFOCUS はエディトコントロール用のマクロです。
>このマクロは WM_COMMAND - EN_SETFOCUS を捕捉しますが、
>ボタンにはこのメッセージは当然来ません。
>(EN_ = Edit control Notification) 

そうですね。
先ほど宮崎@イーストさんにも指摘されて
はじめて大ドジを踏んでいることに
気がつきました。(=_=;)


>ボタンの場合は通常のウィンドウ用の
>afx_msg void OnSetFocus( CWnd* ); 
>ON_WM_SETFOCUS(IDOK,OnSetFocus)
>でいいと思います。

afx_msg void OnSetFocus(CWnd* pOldWnd);
ON_WM_SETFOCUS()

でしょうか?

教えていただいたものを実装すると、ON_WM_SETFOCUSで、
引数が多すぎる旨のエラーが出ます。

afx_msg void OnSetFocus(CWnd* pOldWnd);
ON_WM_SETFOCUS() を追加し、
OnSetFocus(CWnd* pOldWnd) を実装してみましたが、
このイベントは発生せず、捕捉することができませんでした・・・。

全然違うもの実装してるのかな・・・?


お手数おかけいたしますが、
引き続きよろしくお願いいたします。m(_ _)m

----
yoh
30

[vcpp 00042114] Re: static でconst であるクラスメンバについて

Tatsuya Asano wrote:
> '定数'でなくてはならないと思いまして static かつ const で指定
> しました。これでは定数にはならないのでしょうか?

 「書き換えできない変数」であって、「定数(イミディエイト値)」
ではないということでしょう。

 厳密に言えば違いますが、高度に最適化してしまえば同じものと
言えるのかもしれません。

> ファイルが別れている場合、コンパイル時には static で const である
> クラス変数の値はわからないのでしょうか?

 staticかどうかとか、constかどうかとは関係なく、コンパイル
対象となるソース(インクルードファイルを含む)中に値が記述され
てない以上、コンパイル時には解決しないでしょう。

> 最初のメールでも記述した通りに Cygwin に付属の g++ では
> コンパイル・実行は正常に行えましたが、これはコンパイラの
> 違いなのでしょうか?

 コンパイル時にソース中で定義されていなかった値は、自動的に
外部定義という扱いになるんじゃないですか?

 Cygwinのg++って、アセンブラソースを出力するプリプロセッサじゃ
ありませんでしたっけ? Intel(MASM)表記的に言えば ...

A0.ASM ____________________________________

PUBLIC  __A0@MAX_BUFF_LEN

_A0@MAX_BUFF_LEN DD 256

A1.ASM ____________________________________

EXTERNDEF  __A0@MAX_BUFF_LEN:DWORD

_A1@func PROC
    PUSH    EBP
    MOV     EBP,ESP
    MOV     EBX,OFFSET32 _A0@MAX_BUFF_LEN
    MOV     EBX,[EBX]
    SUB     ESP,EBX
    NEG     EBX
    MOV     EBX,[EBP-EBX] ; &buf
    ...

ってな感じのソースが出力されてるのでは?

「MAX_BUFF_LEN」が定数(イミディエイト値)なら ...

A0.ASM ____________________________________

PUBLIC  __A0@MAX_BUFF_LEN

_A0@MAX_BUFF_LEN EQU 256

A1.ASM ____________________________________

EXTERNDEF  __A0@MAX_BUFF_LEN:ABS

_A1@func PROC
    PUSH    EBP
    MOV     EBP,ESP
    SUB     ESP,_A0@MAX_BUFF_LEN
    MOV     EBX,[EBP-_A0@MAX_BUFF_LEN] ; &buf
    ...

ってな感じのソースが出力されるはずです。

+---------------------------------------------------------------------+
| From : Dairyo Gokan ( 後神 大陵 )                                   |
| Org. : Hitmark Computer Corporation ( ヒットマークコンピュータ )    |
| Adrs : 13256 Northup Way Suite 3, Bellevue WA 98005                 |
| TEL:425-649-8808  FAX:425-649-9001  mailto:n...@can.bekkoame.ne.jp  |
+---------------------------------------------------------------------+
30

[vcpp 00042113] Re: static でconst であるクラスメンバについて

二木です。

<3...@maze.co.jp> の、
   "[vcpp 00042101] Re: static で const  であるクラスメンバについて" において、
   Tatsuya Asanoさんは書きました:

> 最初のメールでも記述した通りに Cygwin に付属の g++ では
> コンパイル・実行は正常に行えましたが、これはコンパイラの
> 違いなのでしょうか?

-pedantic-errorsオプションを入れて、コンパイルして
みてください。

-- 
□┐ 二木 紀行 <n...@futatsugi.net>
└┘ http://www.futatsugi.net/
記事検索
Amazon.co.jp
  • ライブドアブログ