5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Win32API 質問箱 Build4

1 :CreateThread:02/06/06 20:03
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、最低限Web検索ぐらいはしてね。

前スレ
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html

Win32API【2】
http://pc.2ch.net/test/read.cgi/tech/1006783012/ (dat落ち)

Win32API 質問箱 Build3
http://pc.2ch.net/test/read.cgi/tech/1017072275/l50

参考
MSDN Online
http://www.asia.microsoft.com/japan/developer/

猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang

643 :デフォルトの名無しさん:02/07/09 21:43
timeGetTimeは1/10ですよね。
QueryPerformanceCounter
って何分の何の単位の精度なんですか?

644 :デフォルトの名無しさん:02/07/09 22:34
timeGetTime()はちゃんと設定すれば1/1000 (sec)の精度があるはず。

QueryPerformanceCounterの精度は、
QueryPerformanceFrequency(&freq), 1/freq (sec)

645 :デフォルトの名無しさん:02/07/10 10:16
>>637-638
なるほど、やっぱそういうことですか、
ありがとうございますた。

646 :デフォルトの名無しさん:02/07/10 10:31
MAPIの関数の説明が書いてあるHPがあったら教えて下さい。
できれば、日本語で書いてるといいですね。

647 :デフォルトの名無しさん:02/07/10 10:32
自前のタスクバーを作っているのですが、タスクバー関連のAPIがわからず困っています。

ツールバーに登録されている(ツールバーにアイコンとして表示されている)アプリケーション(かウィンドウ)へのハンドル一覧を得たいのですが、どの関数を使えばよいのでしょうか。

また、タスクトレイをエミュレートするために、
(1)タスクトレイに登録されているアプリケーションのハンドル
(2)実際にタスクトレイに表示されているアイコンのハンドル
(3)そのアイコンがクリックされた際に適切なメッセージを生成してアプリケーションに送信したい場合に、そのメッセージの種類
を知りたいのです。

648 :デフォルトの名無しさん:02/07/10 10:49
>>646
MSDNで十分じゃない?

649 :クリップボードの使い方:02/07/11 00:45
「猫でもわかるプログラミング」 http://www.kumei.ne.jp/c_lang/sdk/sdk_94.htm
など、多くのサイトでは、SetClipboardData を呼び出した後は、
メモリは Windows の管理下に置かれるので GlobalFree しては
いけない、と書かれています。

確かに実際に動かしてみた限りでは GlobalFree してしまうと、
動作がおかしくなります。(2回目の SetClipboardData が失敗する )
では、メモリが Windows の管理下になるとすると、解放はいつ
行われるのでしょうか?

一方、 MSDN では、
http://www.microsoft.com/JAPAN/developer/library/jpwinpf/_win32_setclipboarddata.htm
「CloseClipboard 関数を呼び出すまでは、そのハンドルを解放
することや、ロックし続けることを避けなければなりません。」
と書かれていて、 CloseClipboard を呼び出した後であれば
解放しても良さそうにも思えます。

また、MSDN では
「CloseClipboard を呼び出した後も、アプリケーションはそのデータに
アクセスできます。」とも書かれていますが、いつ解放されるか分から
ないのでは怖くてアクセスできないと思うのですが・・・

650 :デフォルトの名無しさん:02/07/11 01:10
>>649
だから使うなってことだと思うんだけど。

651 :デフォルトの名無しさん:02/07/11 01:32
TextOutで画面上に出力した文字を消す方法って
画面全体を消去する以外にありますか?


652 :デフォルトの名無しさん:02/07/11 01:35
>>649
ふつうはコピーして使う
SetClipboardData したメモリのことは忘れたほうが無難



653 :デフォルトの名無しさん:02/07/11 01:36
>>651
背景と同じ色で上書きしたら

654 :デフォルトの名無しさん:02/07/11 01:41
>>647

タスクバーのツールバー?
あれはタブコントロールだよ。ボタンスタイルの。

(1)(2)(3) はできた、という話を聞いたことない。

655 :デフォルトの名無しさん:02/07/11 01:59
>>647
出来るかどうか知らんが、ITaskbarListでも調べてみれば?

656 :デフォルトの名無しさん:02/07/11 02:06
>>647
トップレベルウィンドウでかつSW_HIDEじゃない奴を表示してると思う。
ウインドウスタイルの条件があるかも。

トレイはどうだろう。
Shell_No〜をフックすればいけるかも。

657 :デフォルトの名無しさん:02/07/11 11:08
文字入力のカーソルの点滅速度を取得するにはどうすれば良いんでしょう?

658 :デフォルトの名無しさん:02/07/11 11:15
>>657
GetCaretBlinkTime

659 :657:02/07/11 11:26
こりゃまたそのままの名前。
ありがとう。>>658

660 :デフォルトの名無しさん:02/07/12 22:11
ウィンドウ全体を背景色で塗りつぶすのに、もっとも手っ取り早い
方法って何?

661 :デフォルトの名無しさん:02/07/12 22:17
WM_ERASEBKGNDを送る

662 :デフォルトの名無しさん:02/07/12 22:24
>>661
おお、ありがとう。手っ取り早そう

663 :デフォルトの名無しさん:02/07/13 16:15
「メニュープロパティ」の「一般」-「ID(I): IDR_MENU1」として,

WNDCLASS wndclass ;

wndclass.lpszMenuName = IDR_MENU ;

てな感じで書くと,
--------------------------------------------------------------------
warning C4047: '=' : 間接参照のレベルが 'const char *' と 'const int '
で異なっています。
warning C4047: '=' : 間接参照のレベルが 'const char *' と 'const int '
で異なっています。
-------------------------------------------------------------------
とwarningがでるが,ちゃんとメニューは表示されるが,
wndclass.lpszMenuName = "IDR_MENU" ;
とかするとwarningはでないけど,今度はメニューが表示されません.
なんででしょうか?

664 :デフォルトの名無しさん:02/07/13 16:39
MAKEINTRESOURCE(IDR_MENU)
とゆうマクロがあるよん。
ウィザードでは(LPCSTR)IDR_MENU
ってキャストしてるけどね。

665 :デフォルトの名無しさん:02/07/14 20:45
buro

666 :デフォルトの名無しさん:02/07/15 05:19
タスクトレイを右クリックした時に表示されるポップアップメニューのハンドルから、
オーナーのハンドルを取得するにはどうすればいいのでしょうか?

ポップアップメニューのハンドルは取得できるのですが、
GetWindow(hWnd, GW_OWNER);
GetAncestor(hWnd, GA_ROOTOWNER);
では、0が返ってきます。

667 :デフォルトの名無しさん:02/07/15 11:28
GetWindowProcessIdとかEnumChildWindowsを串

668 :デフォルトの名無しさん:02/07/15 18:03
buroburo

669 :デフォルトの名無しさん:02/07/15 18:37
iniファイルの一つのセクションにあるキーの数がいくつかを
調べる方法はありますか?

670 :デフォルトの名無しさん:02/07/15 21:32
>669
GetPrivateProfileSectionを調べよ

671 :デフォルトの名無しさん:02/07/15 22:57
お絵かきプログラムでLineToで描いた一本の線を消すために
画面全体を消去してN-1本の線を復元しています。
あまり良い方法ではないと思うのですが、最後の線だけ消すと
その線と交わっている別の線も消えてしまうので仕方なくこうしてるんですが
いい方法ないですか?


672 :デフォルトの名無しさん:02/07/15 23:04
線引く前のイメージを保存しといたら?
差分を取るようにすれば相当圧縮が効くし。

673 :デフォルトの名無しさん:02/07/15 23:08
ベタ絵ベースのお絵かきプログラム?
ベクトルベースのお絵かきプログラム?

674 :デフォルトの名無しさん:02/07/15 23:11
>>672
私のプログラムでは好きな回数だけ前に戻れるようにしたいので
その方法ですとN個の線を描いた場合N個のイメージが必要になりますよね。
工夫すればイメージの量も小さくなるかもしれませんが、どうなんでしょう。

675 :671:02/07/15 23:14
>>674
あ、671でした。

>>673
あまり詳しくないのでどっちと聞かれると困ってしまいますが
マウスの座標(x,y)を取得し、それを画面上に線として描画するだけの
プログラムです。答えになってるでしょうか・・・。


676 :デフォルトの名無しさん:02/07/15 23:17
>>675
BMPとかJPEGとかで保存するの?

677 :671:02/07/15 23:20
>>676
いえ、今のところそのような保存は行わないです。
最初にお絵かきツールと書きましたが、主な使用目的は
簡単に線を書いたり消したりすることがメインです。
少し話が難しくなってしまいそうな表現でした、すいません。


678 :デフォルトの名無しさん:02/07/15 23:22
表示するのが線だけだったら、画像イメージ保存するよりは
線分の頂点を記録して再描画(つまり今やっている手段)が
むいているんじゃないかな?

679 :671:02/07/15 23:26
>>678
そうですか、現在はおっしゃるように頂点を記録しているので
それを元に最初から復元するのは比較的容易です。
ただ、効率が悪いなぁと思いまして^^;。


680 :デフォルトの名無しさん:02/07/15 23:37
>>679
時間効率と空間効率は、しばしば相反する。トレードオフを探せ。

681 :デフォルトの名無しさん:02/07/15 23:38
>>679
両方組み合わせれば?
俺が今書いてるのは、基本はUndoの度に線を再描画して、
再描画にかかる時間が0.5秒を超えたらその状態を保持して
次からはそこから再描画するようにしてる

682 :679:02/07/15 23:47
>>680
確かにトレードオフは重要ですね。妥協点を探します。

>>681
ある程度の処理時間がかかるところまで保存しておく方法ですね。
なかなか良さそうな方法なので簡単に実装できたらやってみます。


683 :デフォルトの名無しさん:02/07/15 23:51
burororororo

684 :666:02/07/16 02:02
>>667
GetWindowProcessIdでいけました。ありがとう。

685 :デフォルトの名無しさん:02/07/16 04:37
エディットコントロールの最後尾に文字列を挿入すると
テキストの最初の方を見ていても、最後尾に移動してしまいます。
テキストを挿入しても、その場所に移動しないようにするには
どうしたらいいでしょうか?

686 :デフォルトの名無しさん:02/07/16 04:46
>>685
ハァ?

687 :デフォルトの名無しさん:02/07/16 04:56
>>685
自動スクロールオフ

688 :685:02/07/16 05:01
>>687
自動スクロールオフとは?
ES_AUTOVSCROLなどは設定してません。

689 :カンで書いてみる人:02/07/16 06:28
EM_SETCARET

690 :カンで書いてみる人:02/07/16 06:30
はずした・・・

EM_SETSEL 0 0 とか

691 :デフォルトの名無しさん:02/07/16 10:57
置き換える前にEDITの先頭位置(S1)と、現在のセル(S2)の位置を記憶しておいて、
置き換え後に、S1にSETSELしてから、S2にSETSELでなんとかできん?

692 :デフォルトの名無しさん:02/07/16 17:06
http://www.nifty.ne.jp/forum/fdelphi/faq/00137.htm
などで、
SC_MOVE or 2
という指定になっていますが、なぜ2との論理和なのですか?
APIヘルプや、MSDNを見ても載っていなかったのですが・・・。

あと、出来ればReleaseCaptureについての詳しい解説もお願いします。

186 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)