■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build19
751
名前:
デフォルトの名無しさん
:04/06/14 14:40
>>746
MENUEX
752
名前:
デフォルトの名無しさん
:04/06/14 14:49
> ID が無い
> サブメニューの名前や位置が変化する
無理だ...
753
名前:
デフォルトの名無しさん
:04/06/14 17:09
エクスプローラの左にあるフォルダツリーと同じものを作りたいんですが
あれって全部自前でアイコンとかを取得したりしてるのでしょうか?
754
名前:
デフォルトの名無しさん
:04/06/14 18:36
Windows上のC++(またはC言語)で、pdfファイルをいじる方法ってありますか?
帳票の代わりにpdfファイルを作るとかしてみたいのですが・・・。
宜しくお願いします。
755
名前:
デフォルトの名無しさん
:04/06/14 18:37
スマートにやりたきゃまずはpdfの仕様を調べて好きにしろ
面倒だったらWordをOLEで制御するなりunix系ツールで変換するなり
756
名前:
デフォルトの名無しさん
:04/06/14 19:30
>>754
PrimoPDFとか入れて、印刷しろよ。
757
名前:
デフォルトの名無しさん
:04/06/14 20:43
>>746
試してないがこれではムリか?
MENUITEMINFO mii = { sizeof(MENUITEMINFO), MIIM_SUBMENU | MIIM_TYPE | MIIM_ID,
MFT_STRING, 0, idCmd++, hSubMenu, 0, 0, 0, szMenuText };
InsertMenuItem(hMenu, indexMenu, TRUE, &mii);
758
名前:
デフォルトの名無しさん
:04/06/14 21:14
メニューの項目が長すぎる場合、
シェブロンにカーソルを持って行ったら
自動的にスクロールするようにするには
どういう設定をすればいい?
759
名前:
デフォルトの名無しさん
:04/06/15 00:41
>>754
PDFを操作するライブラリがいくつかあるぞ。
ClibPDFなんて使いやすい。
http://www.fastio.com/
760
名前:
デフォルトの名無しさん
:04/06/15 11:44
USBデバイスの電源が入っているかどうかを知るAPIってありますでしょうか。
探したのですが見つかりません。
761
名前:
デフォルトの名無しさん
:04/06/15 11:57
電源が入っていない=認識されて無いだから無理だと思うが…。
逆に探してみて、目的の物が無いかどうかで確認するしかないんじゃないか?
それとも、俺が知らないだけで「電源が入って無くても、認識されている」
デバイスがあったりするか?
762
名前:
デフォルトの名無しさん
:04/06/15 12:02
>>761
バスパワーで、回路だけ動いてれば
「電源が入って無くても、認識されている」
って状況は可能なんじゃないのか?
あるかどうかは、知らないけど。
763
名前:
デフォルトの名無しさん
:04/06/15 13:41
バスパワーってことは、「常に電源が入っている」ってことでしょう?
バスパワーでかつ電源スイッチがあるようなデバイスでも、電源スイッ
チを切ると認識されなくなるんじゃないかい。
764
名前:
760
:04/06/15 14:14
レスありがとうございます。
たとえば単純に、現在使用可能なデバイスのリストを返してくるようなAPIを探しているんですが。
=電源が切れて認識されなくなったらリストからデバイス名が消える
みたいなことをAPIに期待しています。
765
名前:
デフォルトの名無しさん
:04/06/15 14:51
>>764
多分DDK方面?
766
名前:
デフォルトの名無しさん
:04/06/15 14:59
>>764
DDKにusbviewというサンプルがあるから見れ
767
名前:
デフォルトの名無しさん
:04/06/15 15:45
>>764
昔レジストリで確認してたことある
一覧で探してあったらGetDeviceDiscriptor投げ
この辺の操作もDDKサンプルみれば乗ってたはず
768
名前:
760
:04/06/15 16:46
DDK持ってない(T_T)有料なんですね今は
レジストリの線で探ってみます。ありがとうございました。
769
名前:
デフォルトの名無しさん
:04/06/15 17:17
プロセスメモリエディタを作成したい(目標はExSTAND)のですが、
サブヒープの情報はどのように取得すればいいのでしょうか?
各ヒープエントリ情報は、
1.CreateToolhelp32Snapshotでプロセスのスナップショット取得
2.Process32First、Process32NextでPROCESSENTRY32取得
3.CreateToolhelp32Snapshotでヒープのスナップショット取得
4.Heap32ListFirst、Heap32ListNextでHEAPLIST32取得
5.HEAPLISTでHEAPENTRY32取得
という流れで取得できたのですが、サブヒープ情報は取得できません。
どのようにすればサブヒープの情報を取得できるのでしょうか?
よろしくお願いします
770
名前:
769
:04/06/15 18:31
>>769
5.Heap32Firstの間違いですm(__)m
771
名前:
デフォルトの名無しさん
:04/06/15 21:11
定期的にキーボード入力を生成するツールを作りたいのですが、
どうもうまくいきません。
PostMessage(WM_KEYDOWN,...), keybd_event, SendInput を使用したものは、
通常のアプリケーション(メモ帳とか)には正常に動作するのですが、
DirectInputを使ったゲームには作用しないようなのです。
(当然といえば当然かもしれませんが(><))
何かよい方法があったらご教授下さい。宜しくお願いします。
772
名前:
デフォルトの名無しさん
:04/06/15 21:26
>>769-771
ネトゲサロンへお帰りください( ゚,_ゝ゚)
773
名前:
デフォルトの名無しさん
:04/06/16 00:36
ある文字が指定したフォントで表示できるかどうか調べる、というAPIはありませんか?
TextOutで文字を書いたところ他のフォントに置き換わってしまい困っています。
774
名前:
デフォルトの名無しさん
:04/06/16 01:33
>>773
結構しらべたけどない...orz
JAVAにはcanDisplay()という関数があるみたいだから何らかの
方法で実現はできるみたいだけど。。。
775
名前:
デフォルトの名無しさん
:04/06/16 02:19
>>773
GetGlyphIndices かな
776
名前:
名無し@沢村
:04/06/16 04:07
おみゃ〜らよ、メニューについていいことを教えてやろう。
それはリソースエディタでメニューをつくるとき、「ファイル(&F)」のように書くだろ?
すると「F」という字にショートカットキーが割り当てられるわけだ。
おみゃ〜らよ、おみゃ〜らは、いままでショートカットキーを割り当てるときの書式は、「ファイル(&F)」というふうでなくてはならないと思っていたはずだ。
どうだ?
だがおみゃ〜らよ、実は「&」の後の文字なら何でもショートカットキーが割り当てられるのよ。
「(&F)」のように「()」で囲む必要もない。
つまり「&ファイル」とすれば「フ」の字にショートカットキーが割り当てられるし、「フ&ァイル」とすれば「ァ」の字にショートカットキーが割り当てられるのよ。
これはおみゃ〜らが、いままで知らなかったことだ。
覚えておくといいぞ。おみゃ〜らよ♪
777
名前:
デフォルトの名無しさん
:04/06/16 07:18
>>776
それぐらい知っとるわ。
「E&xit」とか良く見るし。
778
名前:
デフォルトの名無しさん
:04/06/16 08:55
>>776
元々、「&File」だったのが、日本語で「&ファイル」すると
ショートカットが「フ」になるから「ファイル(&F)」にしてんだろ。
そんくらい、誰でも知ってるぞ。
「自分が知らなかった=まわりも知らない」
この図式自体が間違ってる事に気付け>沢村
779
名前:
デフォルトの名無しさん
:04/06/16 09:13
>>777
>>778
マジレス ハゲカッッコワルイ
780
名前:
デフォルトの名無しさん
:04/06/16 09:51
沢村くんの文章ではなぜ全角カナと半角カナが混在しているのだろうか。
前前から疑問に思っていたんだよね。
781
名前:
デフォルトの名無しさん
:04/06/16 10:04
ファイル(\036F\037フ)
782
名前:
773
:04/06/16 10:26
>>775
うまく動作させることに成功しました。
ありがとうございましたm(_ _)m
783
名前:
デフォルトの名無しさん
:04/06/16 10:32
Win2KPro & VC++6.0でGINAの開発を行なっています。
WlxLoggedOutSAS()のログオン認証まではMsGina.Dllに処理をスルーして、
WlxActivateUserShell()の呼び出し時にさらにある条件で認証を行い
認証できれば、MsGina.DllのWlxActivateUserShell()に処理を渡し、
認証できなければ、FALSEを返してログオンを打ち切るプログラムを
作ろうと思っています。
そこで、WlxActivateUserShell()上でWlxLoggedOutSAS()で認証された
User名を取得したいのですが、方法が分かりませんご存知の方が居られ
ましたらご教授いただきたくお願いいたします。
恐らく引数lpWlxContextに、その辺の情報が入っている構造体のポインタが
渡されているのではないかと思っているのですが、MsGina.Dllでこの部分が
何に使われているのかが調べきれませんでした。
つたない質問で申し訳ありませんが、よろしくお願いいたします。
784
名前:
771
:04/06/16 20:16
>>772
解決しました、ありがと〜
785
名前:
デフォルトの名無しさん
:04/06/17 17:28
TrackPopupMenuで表示させたポップアップメニューを閉じたタイミングを
検出したい場合、どうすればよいのでしょうか?
ご教授よろしくおねがいします
786
名前:
デフォルトの名無しさん
:04/06/17 18:10
WM_EXITMENULOOPではダメかしら
787
名前:
デフォルトの名無しさん
:04/06/17 18:25
ところでご教授って人の名前?
788
名前:
デフォルトの名無しさん
:04/06/17 18:36
>>787
ところで藻前、とてつもないバカ?
789
名前:
デフォルトの名無しさん
:04/06/17 18:38
うん。教授と教示の違いが分からない奴よりはバカじゃないと思うけどね:-P
790
名前:
デフォルトの名無しさん
:04/06/17 18:44
質問に答えるやつはちゃんと教授法を学べよ。
791
名前:
デフォルトの名無しさん
:04/06/17 18:45
(:-P)_| ̄|_
792
名前:
デフォルトの名無しさん
:04/06/17 18:53
きょうじゅ けう― 【教授】
(名)スル
(1) (ア)児童・生徒に知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。
(イ)専門的な学問・技芸を教えること。
(2) 大学などの高等教育機関において、専門の学問・技能を教え、また自らは研究に従事する人の職名。助教授・講師の上位。
人の名前?て聞くのはヴァカじゃね?
793
名前:
デフォルトの名無しさん
:04/06/17 18:54
>>789
ああ、本当にバカだ。底なし。
794
名前:
デフォルトの名無しさん
:04/06/17 19:49
>>787
ところで難しい質問が来るとしばらくスレが止まって、上げ足レスが付くっていうのは厨の十八番なのか?
判らなければスルーすればよいだけだと思うのだが
795
名前:
デフォルトの名無しさん
:04/06/17 20:00
>>794
(゚Д゚)ハァ?、もしかして
>>783
の教えてクンのこと?
そんなの低レベル過ぎて答える気がしないだけだよ、あんなのがお前には難し過ぎる質問だったのかw
あんまり自分のレベルで判断するなよ、今回みたいに大恥かくよw
796
名前:
デフォルトの名無しさん
:04/06/17 21:32
誰か構ってやれよ
797
名前:
デフォルトの名無しさん
:04/06/17 21:35
エディットコントロールで文字フォントの大きさを変更したいのですが、
検索してSendMessageと、WM_SETFONTを使うべきと分かったのでやってみました。
SendMessage(hwndEdit, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
上のコードを親ウィンドウのプロシージャに埋め込んだのですが、フォント自体は変化せず。
文字高さを以前より大きくすると、カーソルが大きくなるだけです。
以前より小さくすると、フォント下部が欠けた状態で表示されるようになりました。
代わりにスタティックコントロールで試すと、この問題は生じません。
どこが間違っているのでしょう?、教えていただけないでしょうか。
環境は VC++.NET です。
798
名前:
デフォルトの名無しさん
:04/06/17 21:42
一番間違ってるのはこんな状態のこのスレで聞くことだな
799
名前:
デフォルトの名無しさん
:04/06/17 22:59
>>787
==
>>789
必死だな (激藁
800
名前:
デフォルトの名無しさん
:04/06/17 22:59
>>796
=783
まあ今回は許してやるから、勉強して今度はもうちょっとマシな質問しろやw
それと問題が解決したら情報をレスしろよ。それが礼儀だからな
801
名前:
デフォルトの名無しさん
:04/06/17 23:00
>>800
全然面白くない。このスレから消えろ
802
名前:
デフォルトの名無しさん
:04/06/17 23:08
>>801
そういうことは、住人が呆れるような低レベルな質問を、平気でする香具師に言うべきでは?
803
名前:
デフォルトの名無しさん
:04/06/18 00:54
プ
804
名前:
デフォルトの名無しさん
:04/06/18 01:03
>>795
…そう捨て台詞を吐いて、結局
>>783
の解決方法を言わないのか。
もし、
>>794
に対して文句言いたいなら
>>783
の答えを示して
「低レベルすぎて回答する気もならなかった」と言えば
>>794
は何も言えないと思うのだが…。
805
名前:
デフォルトの名無しさん
:04/06/18 01:05
>>804
>>795
にとって、
>>783
は低レベルだが
>>794
は高レベルな書き込みだったのだろう。
何故なら、レスしてるから。(w
806
名前:
デフォルトの名無しさん
:04/06/18 02:15
つーかAPIの話しないなら出てけお前ら
807
名前:
デフォルトの名無しさん
:04/06/18 02:23
∩___∩
| ノ ヽ/⌒) あばばばばばば
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/ ∩―−、
.( ヽ |∪| / / (゚) 、_ `ヽ
\ ヽノ / / ( ● (゚) |つ
/ / | /(入__ノ ミ あばばっあびゃばびゃばば
| / 、 (_/ ノ
| /\ \ \___ ノ゙ ─ー
| / ) ) \ _
∪ ( \ \ \
\_)
808
名前:
デフォルトの名無しさん
:04/06/18 04:54
>>797
エディットコントロールってフォント変えられるんだっけ?
MSDNで調べてみたら?
もしフォント変えられないっぽいならリッチエディットにする。
809
名前:
デフォルトの名無しさん
:04/06/18 08:51
>>808
WM_SETFONTで変えろ
810
名前:
デフォルトの名無しさん
:04/06/18 09:34
>>809
( ゚д゚)ポカーン
811
名前:
デフォルトの名無しさん
:04/06/18 10:46
>>797
WM_SETFONTでフォントを適用したあと、HFONTをDeleteObjectしてないか?
WM_SETFONTで適用したフォントはそのフォントを使わなくなるまで
(コントロールを削除など)保持しとかないとダメだぞ。
もしそうならスタティックで成功してるってのも、再描画すると元に戻ってると思うんだが…。
812
名前:
デフォルトの名無しさん
:04/06/18 11:38
811 さん、、おっしゃる通りです。
直後にフォントを破棄していました。
エディットコントロールが既に存在しないフォントにアクセスしたんでしょうね。
スタティックは再描画後もOKでした、フォントをコピーして保持してるのでしょうか?
しくみが違うようです。
どうもありがとうございました。
813
名前:
デフォルトの名無しさん
:04/06/18 11:45
↑↑↑
失礼、ミスリードしました。
スタティックも再描画したら問題発生しました。
ではでは。w
814
名前:
デフォルトの名無しさん
:04/06/18 20:57
w
815
名前:
デフォルトの名無しさん
:04/06/18 22:58
以下のようにしてファイルロックの様な物を実装しようとしてるのですが
時々処理がWaitForSingleObjectで固まってしまい困ってます。
何が悪いのでしょうか。
func()はマルチスレッドで山ほど同時に呼ばれます。
void func()
{
HANDLE hMutex = ::CreateMutex(NULL, FALSE, strMutex);
if (::WaitForSingleObject(hMutex, 2000) == WAIT_TIMEOUT)
TRACE("WAIT_TIMEOUT\n");
// ここで保護したい処理
::ReleaseMutex(hMutex);
::CloseHandle(hMutex);
}
816
名前:
デフォルトの名無しさん
:04/06/18 23:20
なんでそんなに作りまくるのか
817
名前:
デフォルトの名無しさん
:04/06/18 23:34
実際とは違うけどIriaとかの同時ダウンロードみたいな感じで使用されます。
818
名前:
デフォルトの名無しさん
:04/06/18 23:38
> 実際とは違う
どう違うのかかけ。
特に、毎回Createしてるのかどうか。
819
名前:
デフォルトの名無しさん
:04/06/18 23:45
実際はIriaのようにファイルのダウンロードではなく
サーバにパケット送信したり受信したりしてます。
>毎回Create
Createとは何をCreateしてると言うことですか?
スレッドなら同時に何十も起動できるようにしてますが。
820
名前:
デフォルトの名無しさん
:04/06/18 23:55
mutex
821
名前:
デフォルトの名無しさん
:04/06/18 23:56
>>815
なー、実際に何を保護すんの〜?
822
名前:
デフォルトの名無しさん
:04/06/19 00:01
func() のどこかで ::Sleep(5); を入れてみたらうまくいくかも。
違ってたらごめんなさい。
823
名前:
デフォルトの名無しさん
:04/06/19 00:08
>>820
ミューテックスなら上に書いたようにスレッドが作成されそのスレッドから
毎回関数が呼ばれた際に作成して関数が終わるときに破棄するようにしています。
>>821
ファイル相手じゃないですがデータを読み込みそれを変更してデータを格納してます。
要はカウンタと同じです。
>>822
駄目でした。
824
名前:
デフォルトの名無しさん
:04/06/19 00:11
>>823
main()
{
mutex を1つ作成
...
mutex を破棄
}
func()
{
mutex ウエイト
mutex リリース
}
じゃいかんのかえ?
825
名前:
デフォルトの名無しさん
:04/06/19 00:13
つーかプロセス内でしか使用しないMutexに名前付けるな
826
名前:
デフォルトの名無しさん
:04/06/19 00:15
>>825
そういやMutexってそのままグローバルに名前が見えちゃうんだっけ?
827
名前:
デフォルトの名無しさん
:04/06/19 00:24
>>824
なるほど、大元で作成してそれを使いまわすみたいな感じですか。
ただ、このプログラムの場合、効率を上げるため幾つかmutexを作成してて
その辺変更するの時間かかりそうなのまた明日にでもやってみようと思います。
>>825
上にも書きましたが効率を上げる為です。
もう少し詳しく書くと以下のようにしてます。
void func(LPCSTR lpName)
{
CString strMutex;
strMutex.Format("ACCESS_%s", lpName);
HANDLE hMutex = ::CreateMutex(NULL, FALSE, strMutex);
...
lpNameはデータ名でこれは幾つか有ります。
AAAと言う名前のファイルにデータを書きこむ際は
BBBと言う名前のファイルは保護する必要は無いので。
828
名前:
デフォルトの名無しさん
:04/06/19 00:26
>>827
これ以上アホな質問する前にマルチスレッドと同期について書いてある"まともな本"を読んで来い。
829
名前:
デフォルトの名無しさん
:04/06/19 00:28
>>828
どの辺がアホなのか指摘していただけると凄く助かります。
830
名前:
デフォルトの名無しさん
:04/06/19 00:29
>>827
ていうか情報を小出しにするな。前提条件は最初に書かなきゃ、
>>824
や
>>825
がレスした事が無駄になっちまう可能性もある訳で。
831
名前:
デフォルトの名無しさん
:04/06/19 00:32
>>827
それなら保護したいリソースにアクセスするクラスを構築するたびに
Mutexを生成する
struct FILEIO {
FILEIO { むーってっくす生成 }
~FILEIO { むーってっくす棄て }
HANDLE hmutex;
}
func(FILEIO& aaaaaaaa)
{
aaaaaaaa.hmutexをうえいと
aaaaaaaa.hmutexをりりーす
}
832
名前:
デフォルトの名無しさん
:04/06/19 00:33
>>830
最初に全ての情報を書くと膨大なので必要だと思われるところだけを書いたつもりですが
いかせんアホなのでその辺の取捨選択が間違えてたようで、スミマセン。
833
名前:
デフォルトの名無しさん
:04/06/19 00:33
>>828
答えを書いておきながら、ちょと同意してしまった。
834
名前:
デフォルトの名無しさん
:04/06/19 00:37
>>828
まーその意見には同意するがこのスレでそんな身も蓋も無い事言うもんじゃない。
835
名前:
デフォルトの名無しさん
:04/06/19 00:43
>>831
その方法を使わせていただきます。
有難うございました。
836
名前:
デフォルトの名無しさん
:04/06/19 00:46
>>835
まー、頑張って。
Win32以前に同期のお勉強をしてね。もっといい方法が分かると思うよ。
837
名前:
デフォルトの名無しさん
:04/06/19 01:09
近所のおねえさんとWin32APIでむっくすしたいので方法を教えてください
838
名前:
デフォルトの名無しさん
:04/06/19 01:10
>>837
だまってメーラースレにお戻りください。
839
名前:
837
:04/06/19 01:33
は?
840
名前:
デフォルトの名無しさん
:04/06/19 01:53
>>837
のような書き込みするおまいの頭の方が「は?」だ。
841
名前:
デフォルトの名無しさん
:04/06/19 01:55
それで、近所のおねえさんとむっくすする方法は…
842
名前:
デフォルトの名無しさん
:04/06/19 02:26
>>841
speed&power
843
名前:
デフォルトの名無しさん
:04/06/19 02:45
>>841
looks&money
844
名前:
デフォルトの名無しさん
:04/06/19 02:55
pokotin&korman
845
名前:
デフォルトの名無しさん
:04/06/19 04:50
同一プロセス内でしか使わないなら、クリティカルセクションでいいんじゃないの?
処理の重さは、Mutex>クリティカルセクションだよね?
846
名前:
デフォルトの名無しさん
:04/06/19 05:15
>>845
非NTだとクリティカルセクションはタイムアウトできない
847
名前:
783
:04/06/19 08:18
自己解決しました
なんか荒れる原因つくってしまったみたいで申し訳ありませんでした
848
名前:
デフォルトの名無しさん
:04/06/19 09:25
コンボボックスについて質問です。
テキストが右揃えなスタイルのコンボボックスを作成すると、ドロップダウンのボタンが左側に配置されてしてしまうのですが
普通のコンボボックスのようにボタンを右側に残したままテキストを右揃えにするにはどうすればよいのでしょうか?
ご存じの方どうか宜しくお願いします。
849
名前:
デフォルトの名無しさん
:04/06/19 09:31
自己解決しました
850
名前:
デフォルトの名無しさん
:04/06/19 09:51
849 != 848 です。
この流れだと勘違いされそうなので...
851
名前:
デフォルトの名無しさん
:04/06/19 10:13
>>848
そのスタイルは、右から左へ文章を表示する言語のためのもの。
自分で描画汁。
852
名前:
デフォルトの名無しさん
:04/06/19 10:33
>>847
>>849
ヲイヲイ、「解決しまつた」だけじゃ何の意味もないだろうが
きちんとどうやって解決したのか報告しろ
そうじゃないと質問に答えてくれた人に失礼だろうが、お子様
じゃないんだから、それくらいの事は言われなくても分かって
くれよ…
853
名前:
デフォルトの名無しさん
:04/06/19 10:47
自己解決しました
854
名前:
デフォルトの名無しさん
:04/06/19 10:51
>>852
ねたにまj
855
名前:
デフォルトの名無しさん
:04/06/19 11:21
2ちゃんでマナー語る香具師も珍しいな
856
名前:
デフォルトの名無しさん
:04/06/19 12:54
852じゃないが2ch云々の問題じゃない。
スレの流れも悪くなるし、簡単でいいから内容を
書くべきだ。というか何も書かない椰子よりは
いいが。。。
857
名前:
デフォルトの名無しさん
:04/06/19 12:57
2chとひと括りにするの自体が間違ってる。厨板・技術板・雑談板それぞれに特色があって
それぞれに異なった住人層(と表現しとく)があるんだから。なんかその辺を分かってない奴が最近あちこちの
板に激増してる気がする。空気が読めてないというか何と言うか。
858
名前:
デフォルトの名無しさん
:04/06/19 14:08
自己完結しました。
859
名前:
デフォルトの名無しさん
:04/06/19 14:08
セルフセックスですか
860
名前:
デフォルトの名無しさん
:04/06/19 15:17
気になりますな。
遅そうとはいえ、
>>815
で機能上は問題はないように見えるし。
861
名前:
デフォルトの名無しさん
:04/06/19 15:28
>>851
そのようにさせていただきます。
既製の方法はありませんでしたか。
旧版が番号スタイルのエディットボックス(自動的に右揃え)を使っていたので
見た目を揃えたかっただけなのですが。
862
名前:
デフォルトの名無しさん
:04/06/19 16:05
>>856
まあ、283=247は厨に絡まれまくっただけで技術的な支援はまったく
なかったしねえ、とてもレポート書く気にはならないと思われ
863
名前:
デフォルトの名無しさん
:04/06/19 16:07
↑847=783ね
864
名前:
デフォルトの名無しさん
:04/06/19 16:25
CHOOSEFONTでフォントダイアログを出した後、フォントサイズのところに任意の数字
を入れるにはどうすればいいのですか?
例えば、初めにフォントサイズ40を設定しておいて次回開いたときに40が入っている
って事がしたいのです。
865
名前:
デフォルトの名無しさん
:04/06/19 20:20
こんばんは!一つ質問させてください。
320×240のウインドウを表示したいのですが、タイトルバーが含まれてしまうので
うまく作れないのですが、どうすれば良いのでしょうか?
(320×240の画像を表示したいのです)
よろしくお願いします!
866
名前:
デフォルトの名無しさん
:04/06/19 20:28
>>865
WM_NCCALCSIZE を拾うでつ
867
名前:
デフォルトの名無しさん
:04/06/19 21:57
>>865
1 適当なサイズでウインドウを作る
2 320-クライアントの幅 を現在のウインドウ幅に足してリサイズ
3 240-クライアントの高 を現在のウインドウ高に足してリサイズ
の2ステップが必要。
ウインドウメニューが無い場合は、AdjustWindowRect(Ex)を使っても良い。
868
名前:
デフォルトの名無しさん
:04/06/20 00:26
質問です。
MacのDockをマネたのがWinにもあるけど、
あんな感じでアルファチャンネルを持った
画像を表示したいんです。
画像のアルファチャンネルでウィンドウを
透明にする方法を教えて下さい。
レイヤードウィンドウみたいに全体が
同じアルファ値じゃなくて、ピクセル
単位でアルファ値を変える方法が
しりたいです。
よろしくお願いします。
869
名前:
デフォルトの名無しさん
:04/06/20 00:35
UpdateLayeredWindow()
870
名前:
デフォルトの名無しさん
:04/06/20 00:40
>>869
MSDN読み直したら、「ピクセル単位のアルファ情報を含むこともできます」
と書いてありました。恐縮です。
ありがとうございました。m( _ _ )m
871
名前:
デフォルトの名無しさん
:04/06/20 01:05
>>846
NTだとできるの?
872
名前:
デフォルトの名無しさん
:04/06/20 11:11
エクスプローラで指定のフォルダが既に開いていないか取得する方法って無いですかね?
とりあえずエクスプローラのウィンドウはFindWindowでクラス名をCabinetWClassにすれば
取れるんですけどキャプションは設定によって変わりますからそこで判断は出来ませんし。
どこかからかそのフォルダのCLSIDでも取得出来るなら良いんですが。
873
名前:
デフォルトの名無しさん
:04/06/20 11:18
堅実で確実な方法としては、シェル拡張で潜り込むしかないかな。
874
名前:
デフォルトの名無しさん
:04/06/20 11:26
>>872
http://lamoo.s53.xrea.com/diary/diary2004a.html#t20040521a
875
名前:
872
:04/06/20 11:36
>>874
おお、コリャ良い。
サンクスコ。
ってか、CLSIDじゃ無くてITEMIDLISTだったな。オオボケでした。
876
名前:
デフォルトの名無しさん
:04/06/20 11:44
……この情報がどこから出てきたかは秘密です。
流出ソースだろ、ヤバくないか?
877
名前:
365
:04/06/20 12:30
>>366
>>367
できました、有難うございました〜
878
名前:
デフォルトの名無しさん
:04/06/20 12:49
>>876
これAvesta作者だよね・・・。なんかやばそう。
879
名前:
デフォルトの名無しさん
:04/06/20 17:53
自作のダイアログを半透明にしようとして、WM_INITDIALOGに以下の様に
処理を書いてみたのですが、ダイアログが完全に透明になってしまいます。
いったいどこがおかしいのでしょうか?
BLENDFUNCTION bl;
BOOL bb;
SetWindowLong(hDlgWnd, GWL_EXSTYLE, GetWindowLong(hDlgWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
bl.BlendOp = AC_SRC_OVER;
bl.BlendFlags = 0;
bl.AlphaFormat = 0;
bl.SourceConstantAlpha = 200;
bb = UpdateLayeredWindow(hDlgWnd, NULL, NULL, NULL, NULL, NULL, NULL, &bl, ULW_ALPHA);
880
名前:
デフォルトの名無しさん
:04/06/20 21:18
SetLayeredWindowAttributes使え
881
名前:
デフォルトの名無しさん
:04/06/20 22:11
カーソルをリソースからではなく
(メモリダイアログテンプレートのように)
コードで組み立てる(orコードに埋め込む)
にはどうすればよいのでしょう。
よろしくお願いします。
882
名前:
デフォルトの名無しさん
:04/06/20 22:17
>881
CreateCursor
883
名前:
デフォルトの名無しさん
:04/06/21 18:50
40バイトあるファイルをReadFileで10バイトずつ違う変数に代入したい
場合はどうすればいいのでしょうか。お願い申しage
884
名前:
デフォルトの名無しさん
:04/06/21 19:03
10バイトずつ読む
885
名前:
デフォルトの名無しさん
:04/06/21 19:11
リードしたバッファのアドレスをポインタで保持するだけでいいじゃん
886
名前:
デフォルトの名無しさん
:04/06/21 19:53
>>885
こんな感じですか?
static char String[40];
char *p;
ReadFile(hFile,String, 40, &Read, NULL);
p = String;
w = atoi(p+0);
x= atoi(p+10);
y= atoi(p+20)
z atoi(p+30)
887
名前:
デフォルトの名無しさん
:04/06/21 19:54
(・∀・)・・・?
888
名前:
デフォルトの名無しさん
:04/06/21 20:00
変数に代入、という時点で気付くべきだったな。
889
名前:
デフォルトの名無しさん
:04/06/21 21:47
構造体に読み込みなさい
890
名前:
デフォルトの名無しさん
:04/06/21 22:50
ここはAPIスレだからそれでもいいけど
一般にはストリームから直接構造体に読み込むのは
移植性無さ過ぎるぞ
891
名前:
デフォルトの名無しさん
:04/06/21 23:27
構造体に読む込むってのは、どうやって
かるく例を書いてもらえるとありがたいんですが
892
名前:
デフォルトの名無しさん
:04/06/21 23:29
BITMAPFILEHEADER f;
fread(&f, sizeof f, 1, fp);
みたいなことだろ
893
名前:
デフォルトの名無しさん
:04/06/21 23:31
pretty hackey wayですね(hackyだっけ)
894
名前:
デフォルトの名無しさん
:04/06/21 23:51
Google先生にお伺いを立ててみたところ
hackyジャネーノ? と言われますた
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=hackey
895
名前:
デフォルトの名無しさん
:04/06/22 10:19
別スレで質問したのですが、そのスレが終わってしまったのでこちらで質問します。
マイコンピューターの、ドライブ名の一覧を取得するにはどうすればよいのでしょう。
デジカメなどのマスストレージなども含めて取得したいです。
OSで開いた場合の「マイコンピュータ」フォルダと同じ内容が得られれば目的を果たせるのですが。
OSはXP、言語はDelphiです。
896
名前:
デフォルトの名無しさん
:04/06/22 10:30
>>895
IShellFolder::EnumObjects
897
名前:
デフォルトの名無しさん
:04/06/22 10:32
フォントダイアログの「文字飾り-色」だけを非表示にするAPIってありますか?
文字飾りグループを全部消せるのは知っています。
898
名前:
デフォルトの名無しさん
:04/06/22 10:43
CFHookProcでフォントダイアログにフックを引っ掛けて
その中で目的のコントロールを非表示でよいんじゃないのか?
899
名前:
デフォルトの名無しさん
:04/06/22 11:49
>>897
ShowWindow
900
名前:
デフォルトの名無しさん
:04/06/22 13:04
>>896
できますたありがとうございます
901
名前:
デフォルトの名無しさん
:04/06/22 15:54
CreateProcessを使って立ち上げたexeの標準出力&エラーを
元で取得するにはどうしたらよいでしょうか。
よろしくお願いします。
902
名前:
デフォルトの名無しさん
:04/06/22 16:16
>>901
パイプ
903
名前:
デフォルトの名無しさん
:04/06/22 16:34
windows pipeの覚書
ttp://nhiro4.ld.infoseek.co.jp/program/windows/pipe.html
904
名前:
デフォルトの名無しさん
:04/06/22 16:47
パイプ(名無し)は WaitFor ができないのが難点。
905
名前:
デフォルトの名無しさん
:04/06/22 16:51
>>904
CreateProcessするんだからプロセスハンドルじゃだめか?
906
名前:
904
:04/06/22 16:58
>>905
プロセス終了後にまとめて読むんだったらそれでよいけど、
子プロの吐く内容をリアルタイムで取得したい場合もあるから。
たとえば対話式コマンドとか。
907
名前:
デフォルトの名無しさん
:04/06/22 17:01
それはスレッド使うのが定石。
908
名前:
904
:04/06/22 17:09
スレッド使ったところで、ReadとWaitのループで待つわけだから、
パフォーマンスとレスポンスのトレードオフになる。
てか、名前憑きは使えないんだっけ?
909
名前:
デフォルトの名無しさん
:04/06/22 17:41
>>908
>ReadとWaitのループで待つわけだから、
ReadFile自体がブロックするからWaitは不要。
レスポンスも悪くないよ。
>>901
>190351
- HOWTO: Spawn Console Processes with Redirected Standard Handles
http://support.microsoft.com/?id=190351
910
名前:
デフォルトの名無しさん
:04/06/22 22:18
ユーザー名から、そのユーザーのユーザーグループ(アドミニとかパワーユーザー)を
知りたいんですがそんなAPIありませんでしょうか?
911
名前:
デフォルトの名無しさん
:04/06/23 00:01
WM_INITDIALOGの中でSetTimer(hDlg, NULL, 1000, NULL)すると
何かダイアログを操作するまでWM_TIMERがこないんですが、何故でしょうか?
設定したダイアログに対して何か操作をすると
それからは設定した時間ごとにWM_TIMERが飛んでくるんですが・・・
912
名前:
デフォルトの名無しさん
:04/06/23 00:06
タイマIDって0よかったっけ?
913
名前:
デフォルトの名無しさん
:04/06/23 00:09
>>910
NetUserGetLocalGroups
914
名前:
911
:04/06/23 00:13
>>912
MSDNにはダメとは書いてないですし、SetTimer()の戻り値も正常なので大丈夫かと。
一応適当な数値でやってみましたが、症状変わらずです・・・
915
名前:
デフォルトの名無しさん
:04/06/23 00:21
>>911
モーダルとモードレスがわかっていない阿寒
916
名前:
911
:04/06/23 00:28
あー単純なモーダルダイアログでやってみたらきちんと来ました。
何かミスってるぽいですね。
>>915
解決法をご存知でしたら教えていただきたいんですが、
モードレスダイアログの場合CreateWindow()で作ったWindowのように
PeekMessage()した後にIsDialogMessage()を呼ぶのではダメなんでしょうか?
917
名前:
デフォルトの名無しさん
:04/06/23 00:57
>>916
どんなメッセージループを書いたのか、書いてみ?
918
名前:
911
:04/06/23 01:09
>>917
/* ダイアログ作ったり */
while( hDlg || hMainWnd )
{
while ( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE) )
{
if ( hDlg && ::IsDialogMessage( hDlg, &msg ) )
continue;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
/* 毎回呼びたい関数とか */
}
こんな感じです。よろしくお願いします
919
名前:
911
:04/06/23 03:09
よく分かりませんが、主要部分は全部クラス化してたので
GUIの部分だけ書き直したら正常に動作しました。
正直意味不明です。コード内容ほとんど変わってないのに・・・orz
お騒がせしました。
920
名前:
デフォルトの名無しさん
:04/06/23 10:50
RGBで色を指定するときボタンの色とかのWindowsのシステムカラーを指定するのってどうすればいいんですか?
921
名前:
デフォルトの名無しさん
:04/06/23 10:51
GetSysColor
922
名前:
デフォルトの名無しさん
:04/06/23 10:53
>>921
R:00 G:00 B:01ならボタンの色とかRGB値で直接指定できたりはしないの?
923
名前:
デフォルトの名無しさん
:04/06/23 10:59
>>922
できません。それだと RGB=(0,0,1) の色が使えなくなっちゃうじゃん。
ブラシ (HBRUSH) を取る関数なら、 (HBRUSH) (COLOR_BACKGROUND+1) とかで
いけるんだけどね。
924
名前:
デフォルトの名無しさん
:04/06/23 10:59
何いってんの?256カラーモードで使えば?
925
名前:
デフォルトの名無しさん
:04/06/23 11:00
>>923
それは本来GetSysColorBrush(COLOR_BACKGROUND)とするべきではないのか。
926
名前:
デフォルトの名無しさん
:04/06/23 11:03
>>923
補足で蛇足。先方が OCX コントロールだったりして、OLE_COLOR 型で色指定する場合には、
OleTranslateColor の説明に出てくるいろんな方法 (0x80000000 | COLOR_BACKGROUND とか)が使えます。
927
名前:
デフォルトの名無しさん
:04/06/23 13:44
>>901
パイプで解決しました。
ありがとうございます。
928
名前:
デフォルトの名無しさん
:04/06/23 15:53
自分以外のウインドウのサイズ変更を制限することは可能でしょうか?
自分のウインドウのサイズを制限する場合はウインドウプロシージャで
WM_GETMINMAXINFOメッセージを処理すれば出来るらしいので、
DLL作ってフックプロシージャで制限したいウインドウのメッセージを
処理しようとしているのですがうまくいきません。
LRESULT CALLBACK MsgProc( int nCode, WPARAM wParam, LPARAM lParam )
{
CWPSTRUCT *pCWP;
MINMAXINFO *lpmmi;
if( nCode == HC_ACTION ) {
pCWP = (CWPSTRUCT *)lParam;
if( pCWP->hwnd == hWnd ) { //hWndはサイズ変更を制限したいウインドウのハンドル
switch( pCWP->message ) {
case WM_GETMINMAXINFO:
lpmmi = (MINMAXINFO *) pCWP->lParam;
lpmmi->ptMinTrackSize.x = 600;
lpmmi->ptMinTrackSize.y = 480;
lpmmi->ptMaxTrackSize.x = 1024;
lpmmi->ptMaxTrackSize.y = 768;
return 0;
}
}
}
return CallNextHookEx( Msg, nCode, wParam, lParam );
}
lpmmi = (MINMAXINFO *) pCWP->lParam;
のところを
lpmmi = (MINMAXINFO *) lParam;
に変えてみても出来ませんでした。
ご存知の方いらっしゃいましたらご教授下さい。
929
名前:
デフォルトの名無しさん
:04/06/23 16:44
>>928
>return 0;
これじゃあ、ターゲットのウインドウまでWM_GETMINMAXINFOが届かない。
メッセージをいじった場合でも、メッセージをブロックする場合以外は
Call〜()を呼ぶ。
930
名前:
デフォルトの名無しさん
:04/06/23 17:00
あ、ごめん。
この場合これでいいのか。929は忘れてくれ。
931
名前:
デフォルトの名無しさん
:04/06/23 17:15
単純にグローバルフックになってないとか。
932
名前:
デフォルトの名無しさん
:04/06/23 17:31
>>931
WM_GETMINMAXINFO以外にもメッセージをフックしていますが、
そちらは正常に動いていますのでグローバルフックにはなっていると思います。
念のためreturn 0;の前にメッセージボックスを入れて確認しましたが、
サイズを変更しようとするときちんと表示されています。
それなのに600*480よりも小さくなってしまうんです…。
933
名前:
デフォルトの名無しさん
:04/06/23 17:59
MSDNより
> CallWndProc フックプロシージャはメッセージを調べることはできますが、
> 変更することはできません。
934
名前:
デフォルトの名無しさん
:04/06/23 18:12
>>933
そういうことでしたか…
勉強不足でした。ありがとうございました。
935
名前:
デフォルトの名無しさん
:04/06/23 18:14
>>934
フックで先方のプロセスに入り込んだ後でサブクラス化(Window Proc の付け替え)すればOKだと思うよ。
936
名前:
デフォルトの名無しさん
:04/06/23 20:07
>>935
結構雑事が多いから整合取るの大変だけどね
937
名前:
デフォルトの名無しさん
:04/06/23 20:07
複数のファイルのドロップソースになりたいのですが、
フルパスのITEMIDLISTから、デスクトップのIShellFolderを使い
GetUIObjectOfをすればいいんですか?
それとも、やっぱりIDataObjectを実装しないとならないのでしょうか?
938
名前:
デフォルトの名無しさん
:04/06/23 21:55
>>928
サブクラス化により無事制限出来ました。
どうもありがとうございました。
939
名前:
デフォルトの名無しさん
:04/06/23 21:57
>>919
???
940
名前:
デフォルトの名無しさん
:04/06/24 13:35
>>937
GetUIObjectOfでIID_IDataObjectを指定すればIDataObjectを得られるので、
自分で実装しなくてもいいです
941
名前:
デフォルトの名無しさん
:04/06/24 13:51
>>940
c:\foo\text
d:\bar\text
...
のように、別々なフォルダにあるファイルを複数まとめたIDataObjectが欲しいんです。
IEnumIDListで得られるITEMIDLISTからIDataObjectを取得する場合、
複数フォルダにまたがったファイルからの取得は無理ですよね?
942
名前:
デフォルトの名無しさん
:04/06/24 17:04
程度の低い質問かもしれません&長文ですが御容赦下さい。DefWindowProcの振舞についてです。
ShowBitmap()なる自作関数があります。これはビットマップをメモリデバイスコンテキストにロードして
BitBltでウィンドウ送るだけのものです。これをWM_PAINTな時に実行させると、正しく表示されます。
次に、ボタンやメニューによるメッセージを使ってビットマップを表示させようと考えました。
プロシージャ内でメッセージはswitchで仕分けていますが、
case WM_PAINT:
break;
なる何もせぬコードの有無で振舞が違うのです(ある時にのみ表示されました。) この理由がわかりません。
原因として考えたのが、以下に示すswitch文最後の入門書通りの処理です。
return (DefWindowProc(hWnd, msg, wParam, lParam));
上記「何もしないコード」が無い時は、WM_PAINT時コレが呼び出されるのですが、その際に
何かビットマップが表示されない様な処理が施されるのでしょうか?
そうだとすると「何もしないコード」の挿入で、ビットマップが表示される様になる事は合点がゆきます。
しかし一方で、ShowBitmap()の代わりにメモリデバイスコンテキストでない、文字や線を描くコードを
入れると、「何もしないコード」がなくても描画できるのです。
この事は、一体どの様に理解したらよろしいのでしょうか?先生方、お知恵を拝借できませんでしょうか?
943
名前:
デフォルトの名無しさん
:04/06/24 17:15
自己解決しました。
944
名前:
942
:04/06/24 17:57
>>943
騙り氏ね。
>>942
お願いします。もう時間が無いんです。
945
名前:
デフォルトの名無しさん
:04/06/24 18:05
そんな書き込みで誰かが面倒見てくれると思ってんのカ
946
名前:
デフォルトの名無しさん
:04/06/24 18:09
まさかとは思うがWM_PAINT以外でもBeginPaintしてるとかいうトンチキなオチはないよな?
947
名前:
デフォルトの名無しさん
:04/06/24 18:10
ShowBitmapもださねーで長文をダラダラと。
948
名前:
デフォルトの名無しさん
:04/06/24 18:19
事後承諾しました。
949
名前:
デフォルトの名無しさん
:04/06/24 19:06
今までDLLからウインドウを作ろうなんて考えもしなかったんだけど、
DLLからCreateWindowをするとき、HINSTANCEにはDLLのインスタンスハンドルを指定するのですか?
それともWinMainのHINSTANCEを指定すればいいのですか?
NT系だと無視されるようなので、どちらが正しいかってのがちょっと分からないのですが。
950
名前:
940
:04/06/24 19:25
>>941
ちょっと試してみたのですが、別ディレクトリのファイルでGetUIObjectOfして
エクスプローラにドロップしてみましたが、なぜかショートカットの作成しかできなくて
コピーなどができないのが謎です。
自前でIDataObjectを処理しないと無理なのか???
951
名前:
デフォルトの名無しさん
:04/06/24 21:34
だれか942の質問答えてやれよ?
ここまで低姿勢なんだからさ!
952
名前:
デフォルトの名無しさん
:04/06/24 21:37
> BitBltでウィンドウ送るだけのものです。これをWM_PAINTな時に実行させると、正しく表示されます。
> case WM_PAINT: break; なる何もせぬコードの有無で振舞が違うのです
WM_PAINTな時に実行してないじゃん。
953
名前:
942
:04/06/24 21:57
すみません、つまらない勘違いでした。
どうもお騒がせしました。二度と来ないので勘弁してください。
954
名前:
デフォルトの名無しさん
:04/06/24 21:57
まぁ、case WM_PAINT: break;って何もしないコードとは言い切れないよな。
955
名前:
デフォルトの名無しさん
:04/06/24 21:57
>>942
漏れはDefWindowProcよりも、switch後の振舞の方が気になる。
956
名前:
デフォルトの名無しさん
:04/06/24 22:04
だったらお前が答えてやれよ?
そこまで高圧的なんだからさ!
957
名前:
デフォルトの名無しさん
:04/06/24 22:24
case WM_PAINT: break;
これだと無効領域が有効にならないから
延々とWM_PAINTが飛び続けるんじゃないかな
958
名前:
942
◆ltc18hDOM.
:04/06/24 23:04
皆様、お騒がせして申し訳ない&お返事感謝です。
>>943
,
>>944
,
>>953
は騙りです。お恥ずかしいのですが
やはり該当コードを晒すことにします。hW、hIはグローバルなウィンドウ及びインスタンスハンドルです。
「何もしないコード」の有無でビットマップの振舞が変化します。文字表示に変化はありません。
以下プロシージャです。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0); break;
//case WM_PAINT: // 「何もしないコード」
//break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case ID_SHOWBITMAP:
ShowBitmap(); ShowText(); break;
default:
break;
}
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}
959
名前:
942
◆ltc18hDOM.
:04/06/24 23:05
描画コードです
void ShowText(){
HDC hdc;char* str = "hello";
hdc = GetDC(hW);
TextOut(hdc, 10, 10, str, lstrlen(str));
ReleaseDC(hW, hdc);
return;
}
void ShowBitmap(){
HDC hmdc, hdc; HBITMAP hBitmap; PAINTSTRUCT ps;
hdc = BeginPaint(hW, &ps);
hBitmap = LoadBitmap(hI, MAKEINTRESOURCE(IDB_BITMAP1));
hmdc = CreateCompatibleDC(hdc);
SelectObject(hmdc, hBitmap);
BitBlt(hdc, 0, 0, 200, 200, hmdc, 0, 0, SRCCOPY);
DeleteDC(hmdc);
DeleteObject(hBitmap);
EndPaint(hW, &ps);
return;
}
960
名前:
946
:04/06/24 23:06
いぇい、ビンゴ
961
名前:
デフォルトの名無しさん
:04/06/24 23:07
>>946
が勝者でした。
ここで質問する前に、猫でも読んでおけ。
読み終わるまでは戻ってくるな。
962
名前:
デフォルトの名無しさん
:04/06/24 23:08
もう解決してるんですが…荒らしはやめてください
>>958
,959。
963
名前:
942
:04/06/24 23:08
ソースを良く見直したら、自分がどれほどバカだったか痛いほど思い知りました。
みなさんどうもありがとうございました。涅槃で待ちます。
964
名前:
デフォルトの名無しさん
:04/06/24 23:09
スレを使い切る直前には何故か一揉めするな。
965
名前:
942
:04/06/24 23:12
テヘッ
966
名前:
デフォルトの名無しさん
:04/06/24 23:17
CreateCompatibleDCで作ったDCで最初に選択されてるビットマップって
DeleteObjectしなくていいの?
967
名前:
デフォルトの名無しさん
:04/06/24 23:18
>>959
デバイスコンテキストを扱うときはWM_PAINT時とそれ以外で分けたほうがいいです。
具体的には
void DrawSomething(HDC hdc=NULL)
{
bool flag=false;
if(hdc==NULL){
hdc = ::GetDC(hWnd);
flag = true;
}
//いろいろ描画
if(flag){
::ReleaseDC(hdc);
}
return;
}
ってな感じ。DrawSomethingをWM_PAINT時に呼ぶなら
BeginPaintでデバイスコンテキストを取得してから引数に指定します。
それ以外はNULLを指定して内部でGetDC/ReleaseDCを呼び出すようにする。
理由はうまく説明できそうにないのでエロイ人にでも聞いてください。
968
名前:
デフォルトの名無しさん
:04/06/24 23:32
>>967
そんなことするぐらいならDCは常に呼び出し側が用意、でいいだろ
969
名前:
942
:04/06/25 00:14
うるせー馬鹿
さっさと寝ろ
970
名前:
デフォルトの名無しさん
:04/06/25 00:23
>>966
を教えてよ。
本当の幸せ教えてよ。
971
名前:
デフォルトの名無しさん
:04/06/25 00:24
貴様にレインボーだごるぁ
972
名前:
デフォルトの名無しさん
:04/06/25 00:45
>>966
どうしても気になるなら削除すればいいよ。
ただ、DCに選択されてるオブジェクトはDeleteObjectできないから、
別のビットマップを身代りとして選択しとかなくちゃいけない。
そいつは削除できずに残るけど、まあ目的のためには些細なことだ。
973
名前:
デフォルトの名無しさん
:04/06/25 00:52
>>972
削除しなければいけないのかどうかを知りたいのですが。
ストックオブジェクトとはわけが違いますよね?違わないの?
974
名前:
デフォルトの名無しさん
:04/06/25 00:59
今簡単な送受信ソフトを作っているのですが、送受信の進行状況をプログレスバーで表すことができません。
送受信したファイルサイズなど表す方法があったら教えてください。
自分なりに調べてみたのですが、適当な物が見つかりません。
宜しくお願いします。
975
名前:
942
◆ltc18hDOM.
:04/06/25 01:22
>>942
に関わった皆様
荒らしてしまって申し訳ないです。BeginPaintをMSDNで見ると、確かに
WM_PAINT時以外使うなとありますね。すみませんでした。今後
>>967-968
さんの様にします。
>>963
は騙りですが、現在この通りの事を思っております。出直してきます。
ありがとうございました
976
名前:
デフォルトの名無しさん
:04/06/25 01:35
>>975
まあ、がんがれ。変なのが多かったのは来たタイミングが悪かっただけさ。
977
名前:
デフォルトの名無しさん
:04/06/25 01:38
(´・ω・`)ノシ変なのの一人でーす
978
名前:
デフォルトの名無しさん
:04/06/25 02:45
自分が答えられない質問されると何故かキレる奴が居るからな。
どのスレでも言える事だが。
979
名前:
デフォルトの名無しさん
:04/06/25 03:04
プ
980
名前:
デフォルトの名無しさん
:04/06/25 09:34
ttp://www5.wisnet.ne.jp/~mercury/supertag/index.html
のSuper Tag Editorのように、リストビューにツリーを表示するには
どうしたらいいんでしょうか?
フックとオーナードローをするしかないのかな。
981
名前:
デフォルトの名無しさん
:04/06/25 09:51
そこまでキーワードが分かってりゃ検索すれば一発でサンプルが見つかると思うんだが。
982
名前:
デフォルトの名無しさん
:04/06/25 11:31
>>981
>フックとオーナードローをするしかないのかな。
から
>>980
をプロファイリングすると、恐らく内心では
「フックとオーナードロー('A`)マンドクセ もっとバカチョンな方法教えろゴルァ」
と思っている。間違いない。
983
名前:
デフォルトの名無しさん
:04/06/25 12:06
で?って言う。
984
名前:
デフォルトの名無しさん
:04/06/25 12:07
サンプルどころか、ソース公開なわけだが。
まあGPLだから取扱注意だけど。
985
名前:
デフォルトの名無しさん
:04/06/25 12:18
GPLなコードを見て内容を理解し、そっくりな内容のソースを焼き直ししてもGPL感染は無いので安心したもれ。
986
名前:
デフォルトの名無しさん
:04/06/25 12:28
あ、だからソースそのまんま使っちゃう場合の話ね。
厨な質問するヤシは厨な解決手段をとりがちだから
987
名前:
デフォルトの名無しさん
:04/06/25 12:35
>>982
いや、まあ図星なわけですけど。
フックていうか、サブクラス化ですね。
>>985
マジ・・・なのかな。
988
名前:
デフォルトの名無しさん
:04/06/25 12:45
>>987
コードはGPLに縛られてもアルゴリズムは縛られないからね
989
名前:
デフォルトの名無しさん
:04/06/25 12:45
ダメに決まってるじゃん
990
名前:
デフォルトの名無しさん
:04/06/25 13:02
素人のGPL談義ほど不正確なものはない
991
名前:
デフォルトの名無しさん
:04/06/25 13:06
↓次スレ
992
名前:
◆Manna2uCLg
:04/06/25 13:21
ちょっくら立ててくるぜ。
993
名前:
◆Manna2uCLg
:04/06/25 13:35
…すまん。立てられなかった…
plalaだめぽ…
994
名前:
デフォルトの名無しさん
:04/06/25 13:45
コードなんて盗んでなんぼのもん
995
名前:
デフォルトの名無しさん
:04/06/25 14:11
Win32API質問箱 Build20
http://pc5.2ch.net/test/read.cgi/tech/1088140233/
996
名前:
デフォルトの名無しさん
:04/06/25 14:12
996
997
名前:
デフォルトの名無しさん
:04/06/25 14:12
997
998
名前:
デフォルトの名無しさん
:04/06/25 14:13
998
999
名前:
デフォルトの名無しさん
:04/06/25 14:13
Win32API質問箱 Build20
http://pc5.2ch.net/test/read.cgi/tech/1088140233/
1000
名前:
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
:04/06/25 14:14
Win32API質問箱 Build20
http://pc5.2ch.net/test/read.cgi/tech/1088140233/
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.