mcrblog

vcpp-ml

2000年01月

31

[vcpp 00037155] Re: Win98DDK開発環境設定


こんにちは、みつかです。
RESが遅くなりました。申し訳ありません。

> PortDriverの件は分らないのですが、PrinterDriverの開発を行う
> のであれば、VC1.0x、1.5xのいずれかをSetUpする必要があります。

そのようですね。いろいろ設定を行ってビルドを行っても状況は
一向に変わりませんでした。

ご指示ありがとうございます。ぜひ試してみたいと思います。


この件に関しては、成功次第皆さんにお知らせいたします。
31

[vcpp 00037154] Re: 特定の場所の座標を取得

近藤です。

Yasuyuki Kashiwagi <y...@d1.dion.ne.jp> さんの
On Sun, 30 Jan 2000 20:36:08 +0900
[vcpp 00037113] 特定の場所の座標を取得 への返事です。


> 特定のウインドウの次の場所の座標を取得するにはどうすればいいのでしょうか?

>  ・閉じるボタン(クローズボタン)…右上にある×ボタン
>  ・最大化ボタン
>  ・最小化ボタン
>  ・システムメニュー…左上にあるアイコン
>  ・フォーカスを持ったコントロール

> フォーカスを持ったコントロールは GetFocus を使えばできそうかなと
> 思いやってみたのですが、実行したファイル以外のプロセス(?)だったら
> HWND が取得できないんですね。他のプロセスのフォーカスをもったコン
> トロールの HWND はどうやって取得するのでしょう?

 WM_NCHITTEST を捕まえれば、マウスカーソルが現在何の上にいるか
を知ることは可能ですが、非クライアント領域のボタン類の座標を直接
取得する一般的な手段は無いみたいですね。特に最近流行の非クライア
ント領域の表示をカスタマイズするユーティリティソフトを使われたら
「最大化ボタンが何処に描画されたかを知っているのは、そのユーティ
リティプログラムだけ」となってしまいますから、ちょいと無理だと思
います。

 ただし、フォーカスを持ったコントロールは AttachThreadInput す
れば、他プロセスでも GetFocus が可能になります。

 *-------------------------------------------*
 | 近藤 良一
 |      k...@ieee.org
 *-------------------------------------------*
31

[vcpp 00037153] Re: [vcpp 00037029] Re: CEditクラスでのフォントの変更の仕方について

こんばんわ。竹内 秀憲です。

あひる様、回答ありがとうございました。おかげさまで、
1週間の疑問が解けました。
CEditの場合は、SetFontを使うんですね。

>そもそもOnDraw内では、なるべくオブジェクトの生成・消滅
>を行うべきではないと思いますよ
 貴重な助言ありがとうございます。本にはこういことは明言されてなかったんで
 気づきませんでした。
 


----- Original Message -----
送信者 : "あひる" <a...@gao.hot.co.jp>
宛先 : <v...@mserver.catnet.ne.jp>
送信日時 : 2000年1月27日
件名 : [vcpp 00037029] Re: CEditクラスでのフォントの変更の仕方について


> 竹内 秀憲 様
>  こんにちは。あひる です。
>
>         Thu, 27 Jan 2000 21:48:24 +0900 の
>         [vcpp 00037027] CEditクラスでのフォントの変更の仕方について
>         の発言に関してですが.....
>
> 》やっていることと、現象は、
> 》CViewクラスのOnDraw関数で、最初のみCEditクラスを作成し、
> 》テキストファイルを読み込んだときに、フォントを変更して表示
> 》させるのですが、SetWindowText関数の直前まではフォントが
> 》変更されているようですが、SetWindowText関数で表示される
> 》文字は、起動時のフォントのままになってしまします。
> CEditに対してできるかは、確かではありませんが、
>
> 》↓ソースはこの様にしています。
> 》void CFile_readView::OnDraw(CDC* pDC)
> 》{     static bool flg = false;
> 》     CFile_readDoc* pDoc = (CFile_readDoc*)GetDocument();
> 》     pview =  pDoc->p2; file://読み込んだテキストの参照
> 》     if(flg){
> 》          CFont new_font,*old_font;
> 》          CEdit* myED = (CEdit*)GetDlgItem(IDC_EDIT1);
> 》          new_font.CreatePointFont(100,"MS 明朝",pDC);
> 》          old_font= pDC->SelectObject(&new_font);
> 》          myED->SetWindowText((char*)pview);
> 》          pDC->SelectObject(old_font);
> 》     }
> 2点ほど。
> まずCFontをクラスメンバにして、破棄されない様にする。
> SelectObjectではなく、SetFontを使用する。
>
> そもそもOnDraw内では、なるべくオブジェクトの生成・消滅
> を行うべきではないと思いますよ。
>
> ------------------------------------------------------------
> all the time with a smile
> いつも笑顔で ahirugao がー >^
> mailto:a...@gao.hot.co.jp
> http://ahirugao.i.am/
>
31

[vcpp 00037152] Re: WinNTでファイルを開いているプロセスの判別方法

樋口@raidwayです。

On Mon, 31 Jan 2000 21:02:08 +0900
k...@fsi.co.jp wrote:

>そこで、この現象の早期の原因究明のためにそのプロセスがファイルに
>たいして書込排他をかけているのかを知るための手段/ツールが
>ないかを探しております。

排他の状態まではどうだったか覚えてませんが、

http://www.sysinternals.com/

にあるfilemonで「オープンしているかどうか」は判別できると思います。
http://www.sysinternals.com/filemon.htm

-- 
Higuchi Yasushi (y...@mail.raidway.ne.jp)
http://www2.raidway.ne.jp/%7Eyzone/
31

[vcpp 00037151] Re: winsockのselect 関数に関して

樋口@raidwayです。

On Mon, 31 Jan 2000 09:48:24 +0900
"S.Masa" <m...@nifty.ne.jp> wrote:

>>>ブロッキングするような関数は"WSA"タイプを使うのが一般的なのかと
>ブロッキング型を使うのはやっぱりおすすめではないです.
>unix と違い,ループしてしまったスレッドを安全確実に終わらせる方法
>が Windows にはありません.

確かにそうですが、これって「WSA系を使うべきだ」という事でしょうか?
ioctlsocket()でnonblock指定はできるので、WSA系を使わなくても「安全
確実」はできます。

# nonblockに設定するとsend()やrecv()はEWOULDBLOCKを返してくるよう
# になります

WinSock1の場合は、前述したようにWaitFor~()で他のイベント等と一緒
には待てないので、EWOULDBLOCKで抜けてきたら終了フラグが立ってるか
調べる、となるので少々(CPU的に)無駄ではあるんですけど。

# そういう話じゃないのでしたらすみません
-- 
Higuchi Yasushi (y...@mail.raidway.ne.jp)
http://www2.raidway.ne.jp/%7Eyzone/
記事検索
Amazon.co.jp
  • ライブドアブログ