[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/04 11:46 / Filesize : 212 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

735 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:20:11 ]
煽ってるやつは同一人物か?
違うよな?な?でないとおかしいもんな

736 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:25:48 ]
煽ってるやつは同一人物か?
違うよな?な?でないとおかしいもんな

737 名前:731 mailto:sage [2008/02/25(月) 01:27:05 ]
マジ黙れお前ら

738 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:28:46 ]
こんな感じでいいのか?

LPTSTR name = NULL, newptr;
DWORD len = 32, rlen;
do {
rlen = 0;
len *= 2;
if ( (newptr = (LPTSTR)realloc(name, len * sizeof(TCHAR))) == NULL ) break;
name = newptr;
} while ( (rlen = GetModuleFileName(NULL, name, len)) == len );
if ( rlen ) _putts(name);
free(name);

始め、GetLastErrorを使った切り捨てチェックで実装しようとして気付いたのだが、
SDK for WindowsVista 付属のドキュメントで、
GetModuleFileNameがバッファが小さくて切り捨てした時、
ERROR_INSUFFICIENT_BUFFERがセットされる、とあるけどこれ嘘だな。
いつからか誤った記述が紛れ込んだ予感。

739 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:32:22 ]
>>734が嫌味なのか真性なのか分からない俺はハントシーロムッテロなのか・・・


740 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:36:18 ]
>>738
DWORD len = MAX_PATH, rlen; の方がrealloc呼ばれる回数が減っていいかも

741 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:36:49 ]
MSDNは無謬
そんな風に思っていた時期が…

無い

742 名前:738 mailto:sage [2008/02/25(月) 02:06:26 ]
改めて見るとrealloc使う必要性全然ないな。
随時追加を実装する時のコードだ、これは。
free(name);
if ( (name = (LPTSTR)malloc(len * sizeof(TCHAR))) == NULL ) break;
これでいいや。

743 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:27:33 ]
このスレからカルトを感じる



744 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 03:15:59 ]
適当な大き目のバッファをスタックに取ってOK
それで取得できないような糞長いディレクトリを使うような池沼は無視して問題ない。

745 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:31:53 ]
俺も1KBくらい取って駄目なら止めるな
無駄な作業だもんw

746 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 05:00:57 ]
プログラム板の住人はいつも無意味にピリピリしてるのれす

747 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 05:06:54 ]
そもそも>>678が勘違いして関係ない糞ース書くからだろ

748 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:41:48 ]
そうか・・・。
バッファが足りないときは nSize がそのまま返ってきて
ERROR_INSUFFICIENT_BUFFER エラーになるだけなのか。
あんま斜め読みして横レスするもんじゃないな。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:45:05 ]
そういう風に勝手にMaxを想定するプログラマが多いから、
東証のシステムが止まったりするんだよな。





750 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:04:45 ]
>>749
Microsoft自体がそうだけどな。
Path系APIがMAX_PATHを超えるパスを正しく処理できない、とか。




751 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:12:57 ]
それは、ANSI版使うからだね。Unicode版使えば、約32000文字まで扱えるかな?


752 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:50:50 ]
違うよ。Path関数はバッファ長を引数に渡さないからA/W版共にMAX_PATH固定で作ってあるんだよ。

753 名前:デフォルトの名無しさん [2008/02/25(月) 09:30:24 ]
ダイアログボックスに関する質問です。
モーダルダイアログボックスで、キャプションバー付き、システムメニュー&最小化ボタン等付き、オーバーラップスタイルで作成しています。
タイトルは開発環境のダイアログプロパティで指定して、メニューも同様です。
普通のウィンドウって左上にアイコンがでますよね?
ダイアログボックスでも普通はアイコンが表示されるんですが、メニューをダイアログボックスに指定する(追加する?)と
このアイコンが表示されなくなってしまうんですが、どうしたらいいでしょうか
メニューバーを付けないと、アイコンは表示されるんですが・・

一応リソースの中身はこういう風になっています。
IDD_DIALOG1 DIALOGEX 32, 32, 155, 81
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
CAPTION "タイトル"
MENU IDR_MENU1
FONT 9, "MS Pゴシック"



754 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:19:12 ]
指定のフォルダ内にあるファイルのファイル名を全て取得するにはどうすればできますか?
フォルダ内のファイルを全て開きたいんですが

755 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:26:52 ]
FindFirstFile
FindNextFile

756 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:28:28 ]
FindFirstFile、FindNextFileで列挙する

757 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:48:10 ]
ありがとうございます。できました

758 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 12:01:42 ]
ああ、PATH系ってShell系のAPIね。それならそうかも。前、エクスプローラ使って、
頑張って長いパスのファイル・フォルダ作ろうとしたが、そこらへんの壁越えれなった


759 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:34:45 ]
>>690見て思ったんだが、配列なら_countof使ったらいかんの?
(VC++2005以降だが2003でも定義コピペすれば使える)

760 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 18:43:09 ]
_countofでもARRAYSIZEでもいいけど、
C89に入れてくれればそれで統一できて良かったのに……。
C99でも遅くない。次の改訂でも遅くないから。

C++だとboost::sizeがあるけど、配列に対してはstd::size_tを返すから、
Win32 APIでは少し使いづらい。定数式が必要なときも使えないし。

761 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:45:14 ]
またboost厨か
C++にはSTLがあるという話をするなら分からんでもないが
標準ライブラリでないboost前提で平然と話を進めるあたり流石としか言えない

762 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:59:44 ]
つうかそんな小物のためにboost入れたくないな

763 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:20:15 ]
CreateWindowExでES_MULTILINEを設定してEDITコントロールを作成すると
WS_TABSTOPを記述してもtabでのコントロール間でのフォーカス遷移がそのコントロールでとまってしまいます。

ES_MULTILINEをスタイルに設定したEDITコントロールでもWS_TABSTOPが使えるようにするにはどうすれば良いですか?



764 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:39:18 ]
sizeof も size_t 返すじゃん?

765 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 05:48:03 ]
コンパイル時定数です C言語スレでどうぞ

766 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 07:10:14 ]
>>763
WM_GETDLGCODEの戻り値を
サブクラス化して弄ってやればいいような気がする。
タブが入力できなくなるかもしれんが、それは知らん。

767 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:55:53 ]
lpBufSizeの分領域を確保しようとしてるんですが、HttpQueryInfoでHTTP_QUERY_CONTENT_LENGTH
を指定してもlpBufに何も返ってきてくれません
やっぱりHttpOpenRequestの3個目の引数が間違ってるんでしょうか?
index.htmlや./、../など色々試してみても変らずだったんですが
www.google.co.jp/みたいに/の後に何も無い場合って何を入れればいいですか?


//ソース
hInet=InternetOpen(szClassName,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
if(!hInet)return -1;

hConn=InternetConnect(hInet,"www.google.co.jp",INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
if(!hConn){
   InternetCloseHandle(hInet);
   return -1;
}

hReq=HttpOpenRequest(hConn,"GET","/",NULL,NULL,NULL,0,NULL);
if(!hReq){
   InternetCloseHandle(hConn);
   InternetCloseHandle(hInet);
   return -1;
}

if(!HttpSendRequest(hReq,NULL,0,NULL,0)){
   InternetCloseHandle(hReq);
   InternetCloseHandle(hConn);
   InternetCloseHandle(hInet);
}

HttpQueryInfo(hReq,HTTP_QUERY_CONTENT_LENGTH,lpBufSize,&dwSize,NULL);
※lpBufSizeに何も入らない…

768 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 14:58:53 ]
google の / がどうかは知らないけど、content-length は必ずあるとも限らないしねぇ

769 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:50:39 ]
index.htm、またはindex.html

googleはindex.html
www.google.co.jp/index.html = www.google.co.jp/

770 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:02:39 ]
"/" 等のディレクトリへのアクセスは、普通はサーバーが解釈してくれるんじゃない?
(index.html, index.htm, default.html, index.asp, ...)

771 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:04:49 ]
質問です。
RegisterHotKeyでホットキーを使いたいと思うんですが、
NumLockを外した状態のテンキー(カーソルやらHomeやらEndやらとして動作する)
をホットキーとして利用したいんです。

ところがホットキーの仕様ではいわゆる普通のカーソルキーとテンキー部分との区別が無いので、
どっちのキーを押してもホットキーとして反応してしまいます。

テンキー部分のみをホットキーとして利用できるようなカラクリをこしらえられませんかね。
WM_KEYDOWNとかならExtendedKeyか否かで両者を区別できるんだけどな。
やっぱHookしか無いですかね。

772 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:29:15 ]
>>770
解釈ってーかリダイレクトされるな多くの場合は。

773 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:00:23 ]
>>768-770
ありがとうございます。とりあえず3番目の因数は/でいいんですね
それでも何も入らないのはヘッダに情報が無いからなのかな
調べてたらInternetQueryDataAvailableでサイズ調べれることを知ったのでこれ
を使って確保することにします



774 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:03:09 ]
突っ込んではいけない

775 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:02:33 ]
ごめんInternetQueryDataAvailableで分かるのは一度に読み込めるバイト数だったのね
とりあえずは諦めて読み込めない時は5000000確保することにしました
それでこんな風に書いてみたんですが、yahooやgoogleでは途中までしかダウンロード
されないんですが何故ですか?
ずっとブレークポイントで止めたりググたりして調べてるんだけど分からなくて発狂しそうです

とりあえずエラーチェック無しで書いてみてます

if(lpBufSize[0]=='\0')lstrcpy(lpBufSize,"5000000");
BufSize=(atol(lpBufSize))+1;
lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);
char *Buf=lpszBuf;
while(1){
    InternetReadFile(hReq,Buf,BufSize,&dwSize);
    Buf+=dwSize;
    if(dwSize == 0)break;
}

776 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:35:23 ]
戻り値とGetLastErrorの確認

777 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:36:00 ]
msdn2.microsoft.com/en-us/library/aa385103.aspx

>To ensure all data is retrieved, an application must continue
>to call the InternetReadFile function until the function
>returns TRUE and the lpdwNumberOfBytesRead parameter equals zero.

778 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:33:00 ]
>>776
ありがとう。ループ1回目はエラー無しで2回目からエラーコードERROR_INVALID_PARAMETERがでて
調べると「パラメータが間違ってる」らしいけど何が間違ってるのかわからない…
現在のソースは>>767>>775をくっつけてる状態です
>>777
完全にダウンロードするには、dwSizeが0かつ関数がTRUEを返すまでループさせないと
いけないってこと?
でもそれだと永遠ループしてしまう

779 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:35:22 ]
実際にはない部分の領域も書けるといっちゃダメって話じゃないの。
要するにBufSizeもちゃんと減らせと。

780 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:41:32 ]
>>779
ありがとう。そういうことっぽかったです
試しにInternetReadFileの3つ目の引数を1にしてみたらいけました。
ただこれだと効率悪そうなのでまた今度ちゃんと考えて計算してみます
インターネットに繋げるのに6時間以上かかってしまったけど上手くいってよかった

781 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:53:13 ]
>>774
「因数」のことか?代わりに突っ込んどくか。

引数(ひきすう)が正しい。

782 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:20:34 ]
if(lpBufSize[0]=='\0')lstrcpy(lpBufSize,"5000000");
BufSize=(atol(lpBufSize))+1;

とか

lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);

とか突っ込みどころ満載だな

783 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:36:56 ]
いんすうwwwwwwwwwwwwwwwwww昔の俺だwwwwwwwwwwwww



784 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:50:34 ]
>>782
どう直すと良くなる?

785 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:52:30 ]
今時クリップボード以外でGlobalAlloc使う意味あんの?

786 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:52:31 ]
GlobalAlloc使う理由がわからん
HeapAllocのがよろしいと思うんだけどね 0梅とかシングルスレッド用オプションとか多機能だし

787 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:58:16 ]
スレ的にはnew使うのは無しか

788 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:01:08 ]
lpBufSizeがどこから来ているかわからないが、
初めから整数型にしておけよ。特に関数の引数なら尚更。

789 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:05:12 ]
音訓交じりな"ひきすう"より"いんすう"と読む方が国語的にはセンスがある筈なんだけどね

790 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:06:54 ]
それだと因数と同じ発音だから「ひきすう」と読むと説明される。

791 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:07:03 ]
正直HeapAllocも使わない
malloc/callocやnew使ったほうがデバッグビルドでメモリリーク検出できるし

792 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:08:47 ]
引数が「ひきすう」なら因数は「よりすう」と読むべき。

793 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:11:29 ]
音訓が何か勉強しなおしてこいや



794 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:12:04 ]
>>792
なんてこったいwww

795 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:21:44 ]
美肌(びはだ)
という読み方が気にならないならおk


796 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:25:48 ]
魅せるとか言ってもいいですよ

797 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:27:30 ]
美姫と間違えるくらいなら びはだ でおk

798 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:31:42 ]
淫吸

799 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:32:06 ]
そろそろ用語の読み方スレ池

800 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:41:28 ]
HeapAllocのメリットはCreateして丸ごとDestroyできる
とか

801 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 05:31:21 ]
VMwareみたいなものを動かしていると、仮想ディスクのファイルの
断片化が著しいですが、固定サイズに設定した時のWindowsの
ページファイル(意味伝わるでしょうか?)の様に、
ディスクの物理的な、ある領域区画だけしか使わないようにファイルを
更新する方法ってないでしょうか?
デバイスドライバを書かないとだめでしょうか?


802 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 07:02:08 ]
defragしたいの?

803 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 07:08:16 ]
>>801
FDISKで小さい区画を作ってそこだけ使わせればいいじゃん



804 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:48:39 ]
ウィンドウのタイトルバーをクリックされて何もせず離された時って
プロシージャにはなんていうメッセージが送られるんでしょうか?


805 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 13:05:33 ]
Spy++で監視

806 名前:デフォルトの名無しさん [2008/02/27(水) 13:16:29 ]
質問です。

クリップボードへのコピーが発生したとき、
それが自分のプロセスからかどうかを調べる
一般的な方法ってあるのでのしょうか?

お願いします。

807 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 16:06:08 ]
コピーが発生したとき通知するAPIはあるけど
プロセスまではわかんなかった気が

SetClipboardData見てれば

808 名前:卍凹 [2008/02/27(水) 18:01:52 ]
質問です
ただいまゲーム作成中なのですが他のPCで実行したらバグが起こりました
環境
OS XP home
開発環境 VS 2005
Win32API
C言語で作成
何を書いていいかわからないのでほかいってくれればすぐに書きます

バグは自分の開発しているPCと他の自分のPCは実行できるが、
なぜか友人のPCでは途中で動きが遅くなりフリーズしてしまう…(;_:)こんな感じです。




809 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:25:35 ]
エスパーのさらに上を期待してるのかw

810 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:29:51 ]
スペック足りてないんじゃね

811 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:34:30 ]
>>808
1208行目のループ文が無限ループしてる

812 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:38:57 ]
>>808
メモリとかリソースの解放漏れ

813 名前:卍凹 [2008/02/27(水) 18:47:15 ]
>>810
自分のPCよりスペックの高いPCを友人が持っていたのでためしたが駄目だった
んでスペックが足りないってこともないと思います。
>>811 812
812だとすれば自分のPCでも症状は出ると思うのですけど、今のところはでていません




814 名前:デフォルトの名無しさん [2008/02/27(水) 18:56:33 ]
今日からスッドレの勉強はじめました。

歯痛制御って何ですか?
セマホって何ですか?
クリテカルスポットって何ですか?

815 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:32:43 ]
そのまま勉強を続ければ時季に分かるだろう。

816 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:13:54 ]
>>808
それはその友人の罠だな。すぐ逃げた方がいい

817 名前:デフォルトの名無しさん [2008/02/27(水) 20:21:27 ]
クリティカルセクションつかって
会社の女のまんこに挿入したいのですが、
どうすればいいですか?


818 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:33:45 ]
自分では面白いと思って書き込むんだろうね。
リアルでも空気が読めずに相手にされないのがもろわかりな内容。

819 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:53:17 ]
>>818

820 名前:卍凹 [2008/02/27(水) 20:53:52 ]
自分のPCはCeleronで友人のはPen4これぐらいしか大きなちがいはないのですが
なぜ動かないのでしょうか?うpするからみてもらえませんか??

821 名前:デフォルトの名無しさん [2008/02/27(水) 21:10:15 ]
嫌です

822 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:13:34 ]
何故、他人が作ったもののデバッグをやらなきゃいかんのか、と

823 名前:卍凹 [2008/02/27(水) 21:15:39 ]
すいませんでしたm(__)m



824 名前:卍凹 [2008/02/27(水) 21:16:22 ]
すいませんでした

825 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:35:06 ]
マジで回答期待してるなら
うpロダにソース晒せ


826 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:47:26 ]
俺もゲームやりたい

827 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:03:14 ]
CeleronがCovingtonなら、十分すぎるほど違いがあるな。

828 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:57:47 ]
フォントの10.5ポイントとかとCreateFontの高さを相互変換するにはどうしたら良いですか?

829 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:04:25 ]
MFC や WTL の CreatePointFont の実装をパクる

830 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:07:08 ]
ポイント/72*DCのdpi = pixelという計算式がある。

MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

831 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:30:14 ]
>>829-830
ありがとうございます。
そこらへんから調べてみます。感謝。


832 名前:771 mailto:sage [2008/02/28(木) 00:50:22 ]
誰も覚えてないだろうけど>>771はどうにもならんかったのでフックで何とかした。
以上報告まで。

833 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 04:07:03 ]
MSDNライブラリを読むと、BitBltやStretchBltは使えない環境もあるようですが、
AlphaBlendやTransparentBltにはそのような記述がないということは、
BitBlt等はデバイス(GPU?)が行い、AlphaBlend等は全てCPUが処理するということで合ってますか?



834 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:00:34 ]
Vista以降を除けば合っていない。
GetDeviceCapsのSHADEBLENDCAPSで対応状況が解る。

835 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:01:10 ]
AlphaBlendやTransparentBltはハードウェア処理できたらハードウェア処理するができなかったらソフトウェア処理だったと思う






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef