■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build42
751
名前:
デフォルトの名無しさん
:2006/05/10(水) 20:38:55
自分はCで関数ゴチャゴチャ作ってたときにそれが出てきた。
>(NN*)ってキャストすれば無理やりには出来るんだけど
この手もあるのか。
2重ポインタで2次元配列を動的に作る時に
どの段階から作るかは難しいなあ
752
名前:
デフォルトの名無しさん
:2006/05/10(水) 21:03:44
>>748
前者です。
ちなみに、NetUserGetLocalGroupsってあるけど、これって
所属しているすべてのグループを取得するんだよね?
あくまで「今」実行したユーザがAdministratorとして実行したか
Userで実行したかを知りたいんだけど。
753
名前:
デフォルトの名無しさん
:2006/05/10(水) 21:16:45
>>752
ttp://faqs.org.ru/progr/windows/win32api.htm
の最初のQA。
2番目の look_at_token_method() が752の要求仕様をみたしてると思う。
754
名前:
デフォルトの名無しさん
:2006/05/10(水) 21:35:56
>>750
typedef NN[10] ArrayNN;とすれば
ArrayNN* s;
s = new ArrayNN[10];
これをtypedefを使わずに書くと
>>749
になる。
755
名前:
747
:2006/05/10(水) 22:04:11
>>754
配列までtypedefってできるんだ・・・。
すげーわかりやすいです。どうも。全ての謎が解けました(?)
よく考えたらAPI関係無いじゃんってことでスレ違いですね。注意します。
みなさんくすこ
756
名前:
デフォルトの名無しさん
:2006/05/10(水) 22:09:24
>>753
thx!
明日会社で試してみます。
757
名前:
デフォルトの名無しさん
:2006/05/11(木) 00:14:07
あるレジストリの値に変化がおきたらコールバックしてくれる。
なんて、そんな仕組みあるもんでしょうか?タイマーで見張るしかないですか?
758
名前:
デフォルトの名無しさん
:2006/05/11(木) 00:37:47
これってトリビアになりませんか。
759
名前:
デフォルトの名無しさん
:2006/05/11(木) 01:25:24
よろしくお願いします。
760
名前:
デフォルトの名無しさん
:2006/05/11(木) 04:00:34
何らかを描画するときって全部WM_PAINTの中でやったほうがいい?
それともWM_PAINTをWindowsから送られるものとほぼ割りきって、要所要所で描画したほうがいい?
それともそれとももしかしてアプリケーションの性質による?
どうか教えて
761
名前:
デフォルトの名無しさん
:2006/05/11(木) 05:35:37
要所要所でWM_PAINTという考えはないのか
762
名前:
デフォルトの名無しさん
:2006/05/11(木) 06:13:35
>757
RegNotifyChangeKeyValue
763
名前:
デフォルトの名無しさん
:2006/05/11(木) 06:15:00
c言語でタスクトレイにアイコンを表示したいんですが、
//////////////ソースファイル
NOTIFYICONDATA ic;
HICON hic;
---省略----
hic=LoadIcon(GhInst, "IDA_A");
ic.cbSize=sizeof(NOTIFYICONDATA);
ic.hWnd=HND;
ic.uID=2;
ic.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
ic.uCallbackMessage=5000;
ic.hIcon=LoadIcon(GhInst, "IDA_A");
strcpy(ic.szTip, "こんにちわ");
Shell_NotifyIcon(NIM_ADD ,&ic);
/////////リソーススクリプト
IDI_AICONDISCARDABLE"Icon1.ico"
↑なぜかアイコンは表示されず、トレイには空白が出現します。
カーソルあてるとツールチップは表示されるんですが、、、
どこが悪いのか教えてくださいませ
764
名前:
763
:2006/05/11(木) 06:17:14
↑リソースのところ、スペースがぬけてますが気にしないでください
765
名前:
デフォルトの名無しさん
:2006/05/11(木) 06:31:50
リソースの名前が間違ってるんじゃないのか?
766
名前:
763
:2006/05/11(木) 06:44:51
>>765
間違ってました(笑
それで、修正したんですが、それでもなぜか空白になってました。
アイコンハンドルをウィンドウクラスに設定したら、タスクバーには正常にアイコンが表示されるんですがね、、
767
名前:
763
:2006/05/11(木) 08:13:38
すいません、、、
どうやら、リソースの名前が間違っていたのと、インスタンスハンドルをグローバル変数に代入する所で hInst=GhInst と逆に引数に代入していたようです(笑
プログラミング以前に注意力が足りないようです、、、
考えてくれた方、ありがとうございました。
768
名前:
デフォルトの名無しさん
:2006/05/11(木) 13:27:20
>>760
画面の内容は常にメモリビットマップに持っておく。
RPGでキャラが動いた時とか、すぐ描画したい時、
WM_PAINT以外(WM_KEYDONWとか)で、
まず、そのメモリビットマップに更新部分を描画し、
その後、それをウィンドウに描画する。
WM_PAINTが来た時は、
メモリビットマップをBeginPaintで描画する。
769
名前:
デフォルトの名無しさん
:2006/05/11(木) 14:05:10
いやゲームとか画像編集(表示)ソフトならそーだろうけどさ。
770
名前:
760
:2006/05/11(木) 15:14:52
>>761
適当なリージョンを指定して描画ってか。
あー、そっか。盲目になってた。
そう言う方法もあるのか。
>>768
とりあえずhdcFlipとかhbmpFlipとかいう感じで似たようなことはやってるが、
WM_PAINT以外でメモリBMPに描画することは考えて無かったよ・・・。
>>769
残念ながらゲームでした。ゲ板行った方が良かったんかな。
どうやら教えてもらった方法で解決しそうです。
それにゲーム作る知識も広がった気がするし。
みんなありがとう!
771
名前:
デフォルトの名無しさん
:2006/05/11(木) 21:53:07
猫でもわかるプログラミング、
「Windows SDK編 第1部 第85章 MDIでメモ帳もどきを作る その2」
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_85.htm
のところを勉強していました。
そしたら、WM_CREATEのところにある、
CreateWindowの最後の引数(LPVOID lpParam)が
「(LPSTR)&ccs」となっていました。
ここのところが、なぜLPSTRにキャストしているのかわかりません。
普通に考えたらLPVOIDにキャストするような気がするのですが・・・
わかる方がおられたら教えてください。
お願いします。
772
名前:
デフォルトの名無しさん
:2006/05/11(木) 21:58:44
たぶん意味はない。
773
名前:
デフォルトの名無しさん
:2006/05/11(木) 21:59:43
サイトの管理人に聞けばいいんじゃないかな
774
名前:
771
:2006/05/11(木) 22:06:33
MDIのプログラムを作ろうとして、
コピペでソースを作っていたのですが、
ここは気にせず「(LPVOID)&ccs」にしても問題ないということですよね?
見た目では特に不具合なさそうに見えるので
775
名前:
デフォルトの名無しさん
:2006/05/11(木) 22:12:03
(LPVOID)にキャストする必要も無いな
776
名前:
774
:2006/05/11(木) 22:29:23
>>775
わざわざ「(LPSTR)&ccs」としているので、
キャストするならどっちかっていうと「(LPVOID)&ccs」ではないのかと思ったのですが、
void型にキャストするのは時間の無駄ですよね。
777
名前:
デフォルトの名無しさん
:2006/05/11(木) 22:33:46
はっきり言ってどうでもいい
778
名前:
776
:2006/05/11(木) 22:35:06
訂正
誤)void型にキャストするのは時間の無駄ですよね。
正)LPVOID型にキャストするのもやっぱし時間の無駄ですよね。
779
名前:
778
:2006/05/11(木) 22:36:56
>>777
すみません、わざわざ・・・
ですのでとりあえず「&ccs」にしときます。
ありがとうございました。
780
名前:
760
:2006/05/11(木) 23:42:34
型キャストは使い方を誤ると危険です、「出来る限り」使わないようにしましょう。
781
名前:
デフォルトの名無しさん
:2006/05/11(木) 23:46:38
JavaではそうだったけどCってキャスト無しじゃどうにもならんよね
サンプルもキャストまみれじゃん
782
名前:
デフォルトの名無しさん
:2006/05/11(木) 23:48:13
>>781
>出来る限り
783
名前:
デフォルトの名無しさん
:2006/05/11(木) 23:48:46
まぁWin32APIを使ってるとどうしてもね
Javaもgenerics導入まではダウンキャストしまくってたけど
784
名前:
デフォルトの名無しさん
:2006/05/11(木) 23:50:20
なぜ
>>780
が
>>760
として登場した事のほうが気になる
785
名前:
デフォルトの名無しさん
:2006/05/11(木) 23:58:38
引数無し関数をいちいち void で宣言してる香具師いる?
ちなみに俺はVOID派
786
名前:
デフォルトの名無しさん
:2006/05/12(金) 00:01:20
はつみみです
787
名前:
757
:2006/05/12(金) 00:19:36
>>762
ありがとうございました!
やっぱあったんだ…。
788
名前:
デフォルトの名無しさん
:2006/05/12(金) 00:54:28
VC6でmanifestを使ってXP風のUIを作ってて困っているのがタブコントロール
XP風だと上下方向に微妙にグラデーションが掛かってて、単にタブに子ダイアログを
被せると、背景色を似せても完全に溶け込んでくれない
何か定石見たいなものってある?
単にタブのグラデーションと同じ背景色のダイアログが作れれば問題ないんだが
グラデーションのかかったダイアログをわざわざ用意しなきゃいけないの?
つーか、ダイアログの背景にグラデーションを掛けるやり方なんて知らないし・・・・
789
名前:
在宅バイトマニュアル
:2006/05/12(金) 01:25:01
【情報暴露】
※1時間以内に1万円以上儲からなければ即返金!
(1万円というのはあくまで最低ライン)
★話題の在宅バイトマニュアル★
( 在宅ワーク人気NO.1 )
【参考】
在宅バイトマニュアル ←とネットで検索♪
790
名前:
デフォルトの名無しさん
:2006/05/12(金) 02:43:58
・・・1時間以内に1万円以上儲からなければ即返金って、
1時間で1万円分の仕事が出来なかったら、給料没収ってことじゃんw
791
名前:
デフォルトの名無しさん
:2006/05/12(金) 02:45:34
>(1万円というのはあくまで最低ライン)
ってのがポイントなのな。
792
名前:
デフォルトの名無しさん
:2006/05/12(金) 08:33:17
つーか、要は「バイトマニュアル」の販売が目的なんだろ。
793
名前:
デフォルトの名無しさん
:2006/05/12(金) 11:22:15
すみません、ちょっとAPIとか関係ない質問かもしれませんが
データマトリックス方式の二次元バーコードを作るソースはどこで手にはいりますか?
または、どこで聞けばいいでしょうか?
794
名前:
デフォルトの名無しさん
:2006/05/12(金) 11:51:16
>>793
ttp://www.google.co.jp/
795
名前:
デフォルトの名無しさん
:2006/05/12(金) 11:51:45
?#
>>793
http://www.nikko-pb.co.jp/technoplus/ba/vendor_ba01.html
796
名前:
デフォルトの名無しさん
:2006/05/12(金) 16:03:32
LoadImageでLR_CREATEDIBSECTIONを指定した場合に出来るオブジェクトのbppはなにで決まるんでしょうか?
32bppに固定したいんですができますか?
797
名前:
デフォルトの名無しさん
:2006/05/12(金) 20:44:51
>>796
それをDCに乗せる時に考えれば?
798
名前:
デフォルトの名無しさん
:2006/05/12(金) 22:20:41
VC++でプログラムしている学生です。
マインスイーパの画面を色を読み取って、
それをプログラムの中で行列にしたいのですが、
どういったコマンドを使えば良いのでしょうか?
・画面の読み取り方
・画像から行列データの変換の仕方など
教えてください。
799
名前:
デフォルトの名無しさん
:2006/05/12(金) 22:43:07
誰とは言わんがトップページを ttp にしてる超馬鹿がいるな・・・
今時直リンがどうのと言うアナクロニズムを超越したシュールな笑いを提供してくれるのはいいが
それは他でやってくれ
800
名前:
デフォルトの名無しさん
:2006/05/12(金) 23:19:26
かなり初歩的な事だと思うのですが質問さしてくださ
例えば,ウィンドウクラス登録で下の関数を使うとして
ATOM 関数名(HINSTANCE hInst)のhInst には WinMainのhCurInstを入れ
ATOM 関数名(HINSTANCE hInst){
WNDCLASSEX wc;
wc.cbSize = (UINT)sizeof(WNDCLASSEX);
・
・
wc.hInstance = hInst;
・
・
return (RegisterClassEx(&wc));
}
で、RegisterClassEx()の戻り値がATOMなので
分かるのですが、他にも自作関数でATOMを使う
場合があるのでしょうか
ヘッダを見ると
typedef unsigned short WORD;
typedef WORD ATOM;
となってますが、利点というか、この時にATOM型を使う
という区別は、返す値の型に依存することになるのでしょうか
あと、ATOM型で変数を宣言するなんて事はあるんでしょうか
HICON型やHCURSOR型や(HBRUSH型などは
なんとなく理解できてるつもりですが、ATOM型に関しては
わからないけど使ってるという状態で
どなたか説明して頂けないでしょうか。
お願いします。
801
名前:
デフォルトの名無しさん
:2006/05/13(土) 00:08:45
Shell_NotifyIconについてなんですが
http://yokohama.cool.ne.jp/chokuto/urawaza/api/Shell_NotifyIcon.html
第1引数の dwMessage で、NIM_SETFOCUS の解説のところ。
>タスクバー通知エリアにフォーカスを返します。タスクバーアイコンは、
>ユーザーインターフェース操作が完了したときにこのメッセージを送るべきです。
>例えば、タスクバーアイコンにショートカットメニューを表示して、ユーザーが
>ESC キーを押してキャンセルしたときに、このメッセージを送信してフォーカスを
>タスクバー通知エリアに返すべきです。
このあたりがどうもよくわかりません。どんなタイミングでこれを発行すべきなのか・・・?
802
名前:
デフォルトの名無しさん
:2006/05/13(土) 01:02:12
>>800
ATOMはどちらかというとローカルアトム・グローバルアトムでお世話になる。
RegisterClass(Ex)などが返すクラスアトムとは混用できないので注意。
803
名前:
デフォルトの名無しさん
:2006/05/13(土) 06:34:53
そういう事じゃなくて・・・
アセンブラでプログラミングした場合に、
1. システムが何か使えるパラメータを積んでくれているのかどうか
2. ExitProcessでなくretした場合にret 4とかret 8とかでなくretでいいのかどうか
という事です。
ちなみにレスが遅いのはアク禁で代行してもらってるからです。なのですぐにレス書けないですがよろしくお願いします。
804
名前:
デフォルトの名無しさん
:2006/05/13(土) 08:53:58
入門書で勉強する
サンプルプログラムを参考にする
それでわからなかったら検索する
それでもわからなかったら掲示板で質問する
805
名前:
デフォルトの名無しさん
:2006/05/13(土) 10:46:34
>>803
AdvancedWindowsに書いてあるが、
Windowsはエントリポイントを引数なしで呼んでいる。
だから、何も積まれていないしretで良い。
806
名前:
デフォルトの名無しさん
:2006/05/13(土) 15:15:18
>>799
いちいち気にするオマエの方がどうかと思うが・・
気になるなら専ブラ使うなり、フィルタ掛けるなりしろよ。
それよりも関係ないことでageるな。
807
名前:
デフォルトの名無しさん
:2006/05/13(土) 15:30:06
>>806
ageかどうかこそ関係あるまい
直リンと同レベルの都市伝説かっこわりー
808
名前:
デフォルトの名無しさん
:2006/05/13(土) 15:36:50
わからないなら無理しなくていいぞ
「よくわからないが名前欄に"sage"て書いて置こう」
と覚えておこう!
809
名前:
デフォルトの名無しさん
:2006/05/13(土) 16:35:36
いやきっと、sage不要教条主義なんだよ。
810
名前:
デフォルトの名無しさん
:2006/05/13(土) 19:16:06
unixみたいにrootでパスワードなしに任意のユーザにsuしたいのですが
該当するAPIはありませんか?
811
名前:
デフォルトの名無しさん
:2006/05/13(土) 20:01:48
Administratorから「パスワード無しでパスのついてある任意のユーザにsu」なら不可能。
812
名前:
デフォルトの名無しさん
:2006/05/13(土) 20:06:22
無理すか。不便だ。
813
名前:
デフォルトの名無しさん
:2006/05/13(土) 20:10:56
つーか、Windowsそれ自体だって、たとえば、
サービスをLocalSystem以外の権限で動かすには、
ユーザ名とパスワードの入力が要る。
(サービスのログオン設定)
814
名前:
デフォルトの名無しさん
:2006/05/13(土) 20:13:13
LV.1 クラッカーが経験値稼ぎ中か・・・初々しくていいねw
815
名前:
・∀・)っ-○◎●
◆toBASh....
:2006/05/13(土) 20:13:45
>>506
60キーの英語キーボードです。
816
名前:
デフォルトの名無しさん
:2006/05/13(土) 20:20:25
>>506
さあね、捨て値で叩き売りしてたやつ・・・ ぱっと見、109かな? それだけ
スペースが左に寄りすぎてなくて電源キーがあればとりあえず何でもいい
@が2のところにあるのでも特に違和感はないし
817
名前:
デフォルトの名無しさん
:2006/05/13(土) 21:00:17
>>506
英語キーボードのiBook。
Macは英語配列の方がキーバインド上使いやすい。
818
名前:
デフォルトの名無しさん
:2006/05/13(土) 21:47:46
すれ違い
819
名前:
796
:2006/05/13(土) 23:56:51
>>797
CreateBitmapなどで32bppのを作って、いったんLoadImageしたのを入れればどうかってこと?
LoadImageで読み込んだ時点で16bppや24bppだとデータの劣化があるわけで
そのあとでいくら32bppに変換しても元のデータと違うのでまずいのですよ。
それなのでLoadImageの時点で確実に32bppで読めるようにできないのか聞きました。
820
名前:
796
:2006/05/13(土) 23:58:30
×16bppや24bppだと
○16bppだと
821
名前:
デフォルトの名無しさん
:2006/05/14(日) 00:05:44
>>819
心配しなくてもソース側 BITMAPFILE の BPP で読まれます。
822
名前:
デフォルトの名無しさん
:2006/05/14(日) 01:56:44
MAKEPOINTSがあってMAKEPOINTがないことに疑問を持ち
とりあえず作ってみようと思いますた。
とりあえずマクロで、
#define MAKEPOINT(lParam) ((POINT){((lParam & 65535),(lParam >> 16)}))
としました。
しかし・・・
式の構文エラーと出ます。
INT型などの場合は#define aa(i) ((INT)i)などは出来ます。
構造体でこういったことをするにはどうしたらいいのでしょうか?
823
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:09:05
>>822
マクロではそれは難しいです。やめた方が良いでしょう。
C++ なら inline 関数でほぼ同じことができるので、そちらを使いましょう。
824
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:13:31
>>822
コンパイラがC99対応の必要あり。
http://seclan.dll.jp/c99d/c99d07.htm#dt19991101
825
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:20:55
>>823
えっ?
そんなに難しい」のですか?
これのために色々考えてたのですが・・・
それではアドレスが指す場所に直で計算した数値を無理やり突っ込むのはどうでしょうか?
そういうのは無理でしょうか?(そういや環境によって構造体サイズが違うのか・・・)
826
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:26:20
>>824
inline関数のことでしょうか?
それにしても、Cで使えるようになっっていたのですね
gccしかないものだと・・・
827
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:29:26
建前、Win32API は C でいいことになってるけど、
現実問題としてやっぱ C++ でないときついことが多いな
828
名前:
デフォルトの名無しさん
:2006/05/14(日) 02:40:55
>>827
そうですね、そろそろ私もC++もするべきかなって思ってます。
やっぱしStringがないのが一番堪える!
829
名前:
デフォルトの名無しさん
:2006/05/14(日) 03:39:22
CString は MFC でも今や忌み子だけどな
830
名前:
デフォルトの名無しさん
:2006/05/14(日) 06:22:14
このスレは週末も連休も関係無くスレが伸びているな。
関心関心。
831
名前:
デフォルトの名無しさん
:2006/05/14(日) 12:23:31
FindWindowで得られたウィンドウハンドルを使って、そのプロセスのハンドルを取得
することってできますか?
832
名前:
デフォルトの名無しさん
:2006/05/14(日) 12:40:14
>>831
GetWindowThreadProcessIDとOpenProcessを組み合わせればいいと思う。
833
名前:
831
:2006/05/14(日) 12:49:49
>>832
おお!ありがとうございました!
834
名前:
デフォルトの名無しさん
:2006/05/14(日) 15:47:00
>>831-833
Vista だと UIPI 関係で失敗する場合があるんじゃなかったっけ?
自分よりも相手の権限のほうが上位だった場合に。
835
名前:
デフォルトの名無しさん
:2006/05/14(日) 19:05:46
突然、Vistaの話に飛んだね。
836
名前:
デフォルトの名無しさん
:2006/05/14(日) 20:04:59
WinXP SP2のIEで、ダウンロードが自動的に始まるページへ移動すると
"セキュリティ保護のため・・・"
と表示され、自動的にダウンロードが行われないようになっていますが、
IWebBrowserを使用したIEコンポーネントで同じような機能を実装するには
どうすれば良いのでしょうか?
よろしくお願いします。
837
名前:
デフォルトの名無しさん
:2006/05/14(日) 20:48:20
>>836
IEコンポーネントを使い倒すスレ Ver.2
http://pc8.2ch.net/test/read.cgi/tech/1145189322/
838
名前:
デフォルトの名無しさん
:2006/05/14(日) 21:44:08
>>835
すまんね。Vista で動かすつもりがないんならいいんだけどさ・・・
839
名前:
デフォルトの名無しさん
:2006/05/14(日) 23:04:25
>>834
エラー処理をきちんと組んで突然落ちたりしなければ、大抵それで十分だと思う。
840
名前:
デフォルトの名無しさん
:2006/05/15(月) 03:13:09
98とVistaは何が違うんですか
841
名前:
デフォルトの名無しさん
:2006/05/15(月) 07:49:25
>>834
その手の話はここに詳しいけど。
ttp://blogs.msdn.com/nickkramer/archive/2006/04/15/576758.aspx
より権限の高いHWNDから読むことは出来るが、変更は出来ないとか。
(たとえばGetXXX()はできるが、SetXXX()はできない、などと考えていいのかな。)
というかSendInput()を多用しているプログラムが問題になりそう。
まあ、下位互換性を考慮して、抜け道を用意するんだろうけど。
少なくともユーザが権限を指定できるはず。
>>839
下位互換性の問題から、セキュリティ上の問題で失敗しても、エラーが戻ってくることはない。
842
名前:
デフォルトの名無しさん
:2006/05/15(月) 10:53:32
IPアドレスを指定してNetBIOS名を取得するようなWin32APIって、ご存じないですか?
どなたかご教授願います。
よろしくお願いします。
843
名前:
デフォルトの名無しさん
:2006/05/15(月) 11:32:59
>>842
WinSock系でgethostbyaddr関数。
844
名前:
デフォルトの名無しさん
:2006/05/15(月) 15:38:41
モデム着信を検出し、そのまま、PPP 接続させたいのです。
AT コマンドの ATA でオンフックさせればよいのかなと思うのですが…。
RasDial の電話番号指定を "A" だけにすればよろしいのでしょうか?
ご存知の方、ご教授お願いいたします。
845
名前:
デフォルトの名無しさん
:2006/05/15(月) 15:48:43
【質問内容】
NICとNICに設定しているDNSサーバの関係付けを知るためのAPIって有りませんか?
【やりたいこと】
NICの設定をする「インターネットプロトコル(TCP/IP)のプロパティ」みたいな
ダイアログボックスを作りたい。
【ひっかかっている点】
NICとNICに設定しているIPアドレスetcの関係付けはGetAdaptersInfo()で
知ることができるのは理解しています。
DNSサーバを知る手段にGetNetworkParams()が有ることも理解しています。
しかしこの2つのAPIだけでは、NICが複数枚あった場合にどのNICと
どのDNSとが関係しているのかが不明なので、ここでの質問に及んだというわけです。
よろしくおながいします。
846
名前:
デフォルトの名無しさん
:2006/05/15(月) 18:27:13
二次元バーコードでデータマトリックス方式のソースを公開してるURLを教えてください
847
名前:
デフォルトの名無しさん
:2006/05/15(月) 18:34:21
WIN32APIと関係ない。
848
名前:
デフォルトの名無しさん
:2006/05/15(月) 18:58:58
>845
なんでNICとDNSが関連付くんだ?単にWindowsの標準設定ダイアログが
そうなってるだけだろ?
849
名前:
845
:2006/05/15(月) 20:20:50
>>848
そういえば、そうですね(^^;)。設定のダイアログと同じようなものを作ろうとしてたので
NICとDNSの設定が対になっていると思い込んでました。
確かにFreeBSDなんかNICとIPアドレスの設定は/etc/rc.confにして
DNSの設定は/etc/resolv.confにするもんなぁ…
ありがとうございました。
850
名前:
デフォルトの名無しさん
:2006/05/15(月) 20:38:06
>>849
わんわんわん、わん
(それでも納得いかないなら)
わんわわんわん、わんわわんわんわん わんわんわん
(WMIのWin32_NetworkAdapter,Win32_NetworkAdapterConfigurationで情報を取得するってのがある)
わんわん
851
名前:
デフォルトの名無しさん
:2006/05/15(月) 21:21:28
流行ってそうだから
俺もわん。
852
名前:
デフォルトの名無しさん
:2006/05/15(月) 21:22:26
デフォルトゲートウェイはNICごとですよね?
853
名前:
デフォルトの名無しさん
:2006/05/15(月) 21:30:24
わんわわん
854
名前:
デフォルトの名無しさん
:2006/05/15(月) 22:08:29
うわあん
855
名前:
デフォルトの名無しさん
:2006/05/15(月) 22:54:07
デフォルトゲートウエイもその定義からして、
PCに1つあれば十分
856
名前:
デフォルトの名無しさん
:2006/05/15(月) 22:58:53
>>841
> (たとえばGetXXX()はできるが、SetXXX()はできない、などと考えていいのかな。)
ああ、なるほど。じゃあ、FindWindow くらいなら問題ないのかな。
…と思ったらそのブログには要注意 API として挙げられてるなあ。
わけわからん。
> まあ、下位互換性を考慮して、抜け道を用意するんだろうけど。
> 少なくともユーザが権限を指定できるはず。
XP のときのように個々のアプリごとに互換性ダイアログが用意されている。
問題が起きたらこれを使って権限を上げとけ、ということらしい。
857
名前:
デフォルトの名無しさん
:2006/05/15(月) 23:04:30
>>850-854
∧__∧
/ - - \
| ▼ |
/|=(_人_)= | < 日本語でおk
/ ヽ、____ノ
`Jr ___ ノ
∪⌒∪ ∪
858
名前:
デフォルトの名無しさん
:2006/05/15(月) 23:29:17
NT4.0でSE_TCB_NAME特権をゲットする方法誰か知りませんか?
LogonUser()を使いたいんでう。
859
名前:
デフォルトの名無しさん
:2006/05/15(月) 23:37:33
流行ってそうだから
俺もでう。
860
名前:
デフォルトの名無しさん
:2006/05/15(月) 23:59:27
GetCurrentProcessId() ってDWORDを返すようですが、
実際に使われるプロセスIDの範囲って決まってたりするんでしょうか?
861
名前:
デフォルトの名無しさん
:2006/05/16(火) 00:18:54
いかなる仮定も置くべきではないことは確かだな。
862
名前:
デフォルトの名無しさん
:2006/05/16(火) 05:19:57
>>860
無限ループでプロセス作ってみたら?
863
名前:
デフォルトの名無しさん
:2006/05/16(火) 09:23:33
すいませんくずたれな質問さして下さい
スクリーンセーバーを猫の本みながら作ってたんですがリンカでエラー
がでてしまいます。
どうすれば良いのでしょうか。教えて下さい。
#include <windows.h>
#include <scrnsave.h>
#include "resource.h"
#pragma comment(lib, "scrnsave.lib")
#pragma comment(lib, "comctl32.lib")
#define ID_TIME 100
LRESULT WINAPI ScreenSaverProcW(HWND hWnd, UINT msg,WPARAM wParam, LPARAM lParam)
{
・
・
・
return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
return TRUE;
}
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
return TRUE;
}
のようなソースで
scrnsave.lib(scrnsave.obj) : error LNK2019: 未解決の外部シンボル _ScreenSaverProc@16 が関数
_RealScreenSaverProc@16 で参照されました
となります。
何が足りないのかわからないです。すいませんが、教えて下さい
864
名前:
デフォルトの名無しさん
:2006/05/16(火) 09:39:35
>>863
よくわからんけどなんでScreenSaverProcWってWついてんの?
865
名前:
デフォルトの名無しさん
:2006/05/16(火) 09:43:11
>>864
実はそれが正解かもわん
866
名前:
デフォルトの名無しさん
:2006/05/16(火) 09:43:15
あなたのソースをコピペして実行してみた結果です。
ss.cpp
リンク中...
scrnsave.lib(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverProc@16" は未解決です
Release/ss.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
ss.exe - エラー 2、警告 0
867
名前:
デフォルトの名無しさん
:2006/05/16(火) 10:49:04
>>864
scrnsave.h 見た。
実体は UNICODE で分岐してるね ScreenSaverProc/ScreenSaverProcW
# コード記述時は UNICODE に関わらず ScreenSaverProc を要求しているようだけど
868
名前:
デフォルトの名無しさん
:2006/05/16(火) 11:14:53
RealScreenSaverProc()はどこにある?
869
名前:
デフォルトの名無しさん
:2006/05/16(火) 11:19:57
#define UNICODE
//#pragma comment(lib, "scrnsave.lib")
#pragma comment(lib, "scrnsavw.lib")
通った
870
名前:
デフォルトの名無しさん
:2006/05/16(火) 11:21:17
#define UNICODE
は
#include <windows.h>
#include <scrnsave.h>
より前に必要
/D でも可?
871
名前:
デフォルトの名無しさん
:2006/05/16(火) 11:27:09
#define UNICODE
#include <windows.h>
#include <scrnsave.h>
#include "resource.h"
#pragma comment(lib, "scrnsavw.lib")
#pragma comment(lib, "comctl32.lib")
#define ID_TIME 100
LRESULT WINAPI ScreenSaverProcW(HWND hWnd, UINT msg,WPARAM wParam, LPARAM lParam)
{
・
・
・
return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
return TRUE;
}
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
return TRUE;
}
これでFA?
872
名前:
863
:2006/05/16(火) 12:12:48
VS2005std
でUNICODEでビルドしてるので
>>869
さんの
#pragma comment(lib, "scrnsavw.lib") ←
#pragma comment(lib, "comctl32.lib")
でいけました
ありがとうございました
他にもwになってるのがおおいのかな
873
名前:
デフォルトの名無しさん
:2006/05/16(火) 12:14:55
あっ、そうそう、ワイド文字を使いたい場合は
#define UNICODE
#define _UNICODE
と2つ書くのでおk?
874
名前:
デフォルトの名無しさん
:2006/05/16(火) 12:21:34
>>872
>VS2005std
>でUNICODEでビルドしてるので
それを最初に書かんかいゴルア
875
名前:
デフォルトの名無しさん
:2006/05/16(火) 12:24:02
>>873
そです
876
名前:
デフォルトの名無しさん
:2006/05/16(火) 14:53:59
少し質問させてください。
キーボードフックしてあるアプリケーションに別のアプリケーションから、
PostMessageでWM_KEYDOWN/UPを投げてもフックプロージャが呼ばれません。
これをどうにかする良い知恵ありませんか?
877
名前:
デフォルトの名無しさん
:2006/05/16(火) 14:59:00
↑ X:プロージャ O:プロシージャ
878
名前:
デフォルトの名無しさん
:2006/05/16(火) 16:21:01
そんな突っ込みはいりまsんしんでください
879
名前:
デフォルトの名無しさん
:2006/05/16(火) 16:26:41
↑ X:いりまsん O:いりません
880
名前:
デフォルトの名無しさん
:2006/05/16(火) 16:47:53
他のプロセスのウィンドウにキーメッセージを送りたいんですけど、いろいろ試しても成功しません。
どなたかご教授ください。
↓のようなc言語ソースなんですが、どこが悪いんでしょうか?
WINHND=FindWindow(NULL,"メモ張");
PostMessageA(WINHND,WM_RBUTTONDOWN ,0,0x012C012C);
PostMessageA(WINHND,WM_RBUTTONUP,0,0x012C012C);
正常ならメモ張の300x300の所に右クリメニューが出るはずなんですが・・
881
名前:
デフォルトの名無しさん
:2006/05/16(火) 16:56:19
Windowsについてくる、メモ帳にメッセージ送ろうとしてるわけではないよね?
882
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:00:40
>>881
>Windowsについてくる、メモ帳にメッセージ送ろうとしてるわけではないよね?
そうです。無理なんですか?
無理だとしたら、メモ張だから(windowsについて来るアプリだから)という事ですかね?
883
名前:
880
:2006/05/16(火) 17:10:02
>>882
も私です。
そもそも、同じプロセス内でしかメッセージって送れないんでしょうか?
884
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:16:05
んなことはない。
880のコードではメモ帳の親ウィンドウにメッセージを送っているが、
エディタ部分(おそらく標準のエディットコントロール)の方に送ってやらないとダメなんじゃないか。
885
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:19:54
あとさぁ
×メモ張
○メモ帳
886
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:27:26
HWND hNotepad, hEdit;
hNotepad = FindWindow("Notepad", NULL);
hEdit = FindWindowEx(hNotepad, NULL, "Edit", NULL);
PostMessageA(hEdit, WM_RBUTTONDOWN ,0, 0x012C012C);
PostMessageA(hEdit, WM_RBUTTONUP, 0, 0x012C012C);
887
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:28:11
>>884
SPY++ でみた。
エディタ部分は標準のEDITコントロールだーね(サブクラス化されてるかはワカランけど)
888
名前:
デフォルトの名無しさん
:2006/05/16(火) 17:45:35
例のソースに入ってた
889
名前:
880
:2006/05/16(火) 18:15:18
できました!ありがとうございます。
なるほど。表示されてるウィンドウに送ればいいってもんじゃないんですね。
890
名前:
デフォルトの名無しさん
:2006/05/16(火) 21:56:50
サブクラス化について質問があります。
typedef struct 構造体
{
WNDPROC fnSubProc;//親のプロシージャ
・・・
}構造体;
と前もってこの構造体を作っていました。
サブクラス化したときの戻り値である親ウィンドウのアドレスを
構造体 *a;
a = (構造体*)malloc(sizeof(構造体));
SetWindowLong(hWnd,GWL_USERDATA,a);
a->fnSubProc = (WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC,(LONG)SubProc);
といったふうにこの構造体内に入れました。
そして領域の開放は、SubProc内のWM_DESTROYにて、
構造体 *b;
b = (MYDATA *)GetWindowLong(hWnd,GWL_USERDATA);
free(b);
return 0;
と開放処理を入れました。
これでとりあえずは動いていました・・・、終了処理以外。
エラーの原因は、WM_DESTROYした後にもSubProcが来ていて、
既に消した構造体を参照しようとしているからだと思うのですが
WM_DESTROY以降に来るメッセージがわかりません。
それにこの方法自体してはいけないのかもわかりません。
長くなりましたが、どなたか教えてもらえないでしょうか。
891
名前:
デフォルトの名無しさん
:2006/05/16(火) 22:01:46
>>890
最後に来るメッセージは WM_NCDESTROY 。
ドキュメントのどっかに載ってます。
あと将来のことも考えて、
LongPtr とか GetWindowLongPtr の使用も考えてください。
892
名前:
デフォルトの名無しさん
:2006/05/16(火) 22:30:08
>>891
はやい書き込み、ありがとうございます。
WM_DESTROYをWM_NCDESTROYに変えたらエラーが出ませんでした。
ほんとうにありがとうございました。
893
名前:
デフォルトの名無しさん
:2006/05/16(火) 23:01:20
質問です。
LPCWSTRでも使えるWriteFileみたいな関数はないでしょうか?
894
名前:
デフォルトの名無しさん
:2006/05/16(火) 23:05:00
WriteFileで使えるだろ。
895
名前:
デフォルトの名無しさん
:2006/05/17(水) 01:35:20
一瞬WriteFileW()が浮かんでしまった漏れがいる…orz
896
名前:
デフォルトの名無しさん
:2006/05/17(水) 02:24:49
Writeした結果がどうなって欲しいのかわかんないと、どうにも。
897
名前:
デフォルトの名無しさん
:2006/05/17(水) 03:17:39
猫でものプログラムをUNICODEバージョンに変えようと思いました。
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
←このプログラム
ですので、
そのプログラムの先頭に
#define UNICODE
#define _UNICODE
をつけ、
「char szClassNme[] = "ウィンドウクラス・ネーム";」などを
「LPCTSTR szClassNme = TEXT("ウィンドウクラス・ネーム");」
に変更して実行しました。
ですが結果なのですが
if (!RegisterClass(&myProg)) return FALSE;
のところで処理を抜けているみたいです(MessageBoxで確認)。
なにがだめ駄目だったのかわかりません。
どなたか教えてもらえないでしょうか?
898
名前:
デフォルトの名無しさん
:2006/05/17(水) 03:42:34
>>897
GetLastErrorは?
899
名前:
デフォルトの名無しさん
:2006/05/17(水) 05:51:34
普通に動くサンプルを元にした方がいい。
動かないものを動くようにするのは初心者には無理
900
名前:
デフォルトの名無しさん
:2006/05/17(水) 12:06:47
VisualSutdioのウィーザードでアプリを作ると素っ気ないアプリが出来てしまうんですけど、
できれば、Picasa2みたいなイカス外観とか、スキンのような仕組みを取り入れないんですけど、
フレームワークのような物があるんでしょうか?
何か情報ありましたら教えてください、よろしくお願いします。
901
名前:
デフォルトの名無しさん
:2006/05/17(水) 12:27:47
>>892
後始末なら サブクラス化前の WNDPROC を書き戻した方が良くないかい?
902
名前:
897
:2006/05/17(水) 14:17:53
>>898
UNICODEにしたらメッセージボックスの文字列がおかしくなっていました。
ですのでわかりませんでした。
>>899
UNICODEでなかったら動きました。
903
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:33:55
>>897
プログラムの先頭って、具体的にどこ?
ヘッダファイルの宣言より上だよね?
904
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:37:52
>>902
OS が Windows 98 とか ME なんじゃないでしょうか。
905
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:38:42
>>903
ヘッダファイルより下だと、ANSIに切り替わるだけじゃない?
906
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:40:44
>>905
ANSIコードにしときならが、pragma で WIDE側 lib 連結してたら ワケワカ状態になる可能性が
907
名前:
903
:2006/05/17(水) 14:41:08
>>905
そりゃそーだw
漏れが悪かった
908
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:48:26
>>906
WinAPIはdefineで切り替えてるから問題なくね?
909
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:52:41
>>908
あ API は シンボル名 違うから、衝突なんておきないか。
# 元質問のリンカエラーがそうだったし
910
名前:
デフォルトの名無しさん
:2006/05/17(水) 14:55:58
>>902
どういう環境で書いてるのかシランが、
デバッガの使い方を覚えるか、デバッガを使える環境に移行することを勧める
911
名前:
デフォルトの名無しさん
:2006/05/17(水) 15:01:08
喪前らこんな20行程度のコードも机上デバグできないのかよ・・・ビクリしますた。
帰ってきたエラーコードは 0x00000078 、原因は 897 が WIndows98/ME/95を
使っているから。以上でオシマイ。
912
名前:
897
:2006/05/17(水) 15:02:28
>>903
ヘッダファイルの宣言より上です。
>>904
もしかして98系だと無理なのですか?
今、諸都合により98系です。
913
名前:
デフォルトの名無しさん
:2006/05/17(水) 15:05:52
>>911
すまねぇ SDK見りゃ一発だわな
RegisterClass
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.
914
名前:
897
:2006/05/17(水) 15:16:20
>>904
,911,913
すんません、自分がばかでした。
XPばかりだったので忘れてたみたいです。
つきあってくれてありがとうございました。
915
名前:
デフォルトの名無しさん
:2006/05/17(水) 16:49:12
>>914
Microsoft Layer for Unicodeを使えば9xでも一応Unicode版APIが使える。
916
名前:
デフォルトの名無しさん
:2006/05/17(水) 20:23:36
ツールバー(BTNS_CHECKのボタンがあるもの)にて
ツールバーのチェック状態を得るにはどうしたらいいのでしょうか?
917
名前:
デフォルトの名無しさん
:2006/05/17(水) 20:37:00
TB_GETSTATE
918
名前:
デフォルトの名無しさん
:2006/05/17(水) 20:44:58
ウニコードとか意味不明だぜ
919
名前:
デフォルトの名無しさん
:2006/05/17(水) 22:05:26
釣りだろ
920
名前:
デフォルトの名無しさん
:2006/05/18(木) 01:18:24
ウニコードも知らんのか
921
名前:
デフォルトの名無しさん
:2006/05/18(木) 01:19:21
僕の肛門もウニコードに置き換えられそうです。
922
名前:
872
:2006/05/18(木) 02:38:32
>>874
さん
すんません
>>897
さん
猫でもの本を買った俺からの意見
「なんでこんなにグローバルで変数宣言してんだ」
「なんで、こんなに変数を初期化せずに使ってるんだ」
「この変数は関数内だからグローバルじゃなくてstaticで関数内で宣言すれば良いじゃねぇか」
「なんで、こんなにAPIについて説明が中途半端なんだ」
「おいおい、このAPIについての説明はこれだけ?」
「初心者の俺みたいな奴に、EnableMenuItem()を初めて説明するときに
フラグをMF_BYCOMMANDで指定させるか?」
「リソースの名前を""で囲めば楽ですよ、ってMAKEINTERESOURCE()使った方がもっと楽じゃねーかよ」
「なんで、毎回ウィンドウクラスの登録とCreateWindowするとこだけは律儀に
書いてんだよ、で、前の章では使ってない関数とかをなんで太字にしたりしなかったり」
「この変数どこで宣言してんだよ・・・・あ、またグローバルで宣言してるよ」
「あれ、本通り打ち込んだのに動かない、あれこの関数宣言してるのに使ってない
・・・って、急に別ページにのこりの関数書くなよ」
「ライブラリを#pragma command(lib, "〜")する仕方の説明なしかよ(この板で
教えてもらったよ)」
「別に拡張子で判断されないのは分かるけど、せめて.cppはやめようよ」
「なんだか、この本のプログラムの書き方を身につけて良いのだろうか・・・・」
と、いう過程によりくずたれな俺がリファレンス本を買いプログラムの書き方について
考えさせられ、自発的に向上をうながしてくれる良い本だよ。
一度買ってみると良い。だんだんいらついてくるきてやる気薄れてくるから。
ただ、俺は一応全部UNICODE変えて書いてて
世の流れもそうなっていくらしいからそうしてるけど、ANSIの方が良いのかな
くずたれの俺にはわからない。
923
名前:
デフォルトの名無しさん
:2006/05/18(木) 02:42:05
>>922
NTカーネルの内部は、すべてUTF-16になっている。
いまのANSI版のAPIは、すべてWide版のラッパに過ぎない。
当然、ANSI版のAPIを使うと、文字コード変換のオーバーヘッドが生じる。
MSもUNICODEに移行したがっているけど、過去との互換性の問題で、なかなかうまくいかない。
今までに書かれ、今もなお動いているコードが多すぎるから。
やっと、VCから、デフォルトの文字コードがUNICODEになったけどね。
本格的に移行するには、あと5年から10年はかかるのかな。
924
名前:
デフォルトの名無しさん
:2006/05/18(木) 05:52:16
>>922
「猫でも〜」はWebで全部見られるから本買う気が起きない
925
名前:
デフォルトの名無しさん
:2006/05/18(木) 06:16:53
webのやつがそのまま本になったわけじゃないだろうけど
書いた本人は同じだからな
926
名前:
デフォルトの名無しさん
:2006/05/18(木) 07:54:59
猫でもにはいろいろ(今となっては)不満もあるが、10年前にはあれほどには
まとまったものはなかった。オレには有り難かった。昔はメールで聞くと教えて
くれた。あれを最新版にするため見直すってのは、マ大変だな。
世話になって感謝の気があるならたまにアクセスしてアクセス回数を増やして
礼の代わりにしたがいい。いずれは陳腐化して消えるだろうが、出来るだけ
残ってほしいと思う。
927
名前:
デフォルトの名無しさん
:2006/05/18(木) 07:56:43
感謝する気があるのなら、寧ろ早く消えてもらって次の誰かの登場を期待すべくアクセスしない方が医院で内科医。
928
名前:
デフォルトの名無しさん
:2006/05/18(木) 08:20:31
猫だけで勉強するのは絶対不可能
初心者の場合は特にそう
ただサンプルがいっぱいあるから使える。
929
名前:
900ですが、
:2006/05/18(木) 12:16:36
ここじゃレス付きそうもないですかね?
何方かスレ紹介してくれませんでしょうか?
930
名前:
デフォルトの名無しさん
:2006/05/18(木) 14:12:22
猫はAPIのサンプルだろ。
931
名前:
デフォルトの名無しさん
:2006/05/18(木) 14:36:17
>>929
codeprojectから
ttp://www.codeproject.com/wtl/SkinX.asp
ttp://www.codeproject.com/dialog/skindlg.asp
あとは、MediaPlayerみたいにリージョンで切り抜くとか
932
名前:
デフォルトの名無しさん
:2006/05/18(木) 16:17:53
最近は Region で切り抜くよりも
SetLayeredWindowAttributes で
ゴニョゴニョする方がクール
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/layerwin.asp
933
名前:
デフォルトの名無しさん
:2006/05/18(木) 16:29:19
子ウィンドウの数を調べるにはGetWindowでループさせるくらいしかないですか?
934
名前:
デフォルトの名無しさん
:2006/05/18(木) 16:33:35
せめて EnumChildWindows 使えよ
935
名前:
デフォルトの名無しさん
:2006/05/18(木) 17:21:00
VisualStudioなどのForm作成画面について質問です。
あのForm作成画面で作成されるボタンとかはCreateWindowで作ったボタンに、
フォーカスが移動したとき、
そのボタンの上にサイズ変更の枠の形をしたWindowを重ねるという処理して実現させているのでしょうか?
936
名前:
デフォルトの名無しさん
:2006/05/18(木) 17:24:52
違います
937
名前:
デフォルトの名無しさん
:2006/05/18(木) 17:31:08
それでは、ボタンっぽい自作ウィンドウですか?
938
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:07:02
違います
939
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:09:33
SPY とかで見たら?
940
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:17:48
SPY?
それはなんなのでしょうか?
作り方わかんない・・・
941
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:28:19
わかんないなら作らなくていいですよ?
942
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:34:06
>>939
コントロールじゃないんだからspy++で見ても意味無いだろ
>>935
DrawFrameControl()とか使って自前で描画してください
943
名前:
デフォルトの名無しさん
:2006/05/18(木) 18:56:23
いちおうspy++で見たら
VC6のはそのまんま実物だな
あとは知らん
944
名前:
デフォルトの名無しさん
:2006/05/18(木) 19:24:26
>>942
そんなのがあったんだ・・・
この関数の内容を見たら
ボタン、タイトルバー、メニュー、スクロ−ルバー
しか出来ないみたいですが
EDITやSTATICは自分で書くしかないのですか?
945
名前:
デフォルトの名無しさん
:2006/05/19(金) 00:59:00
わかんないなら作らなくていいですよ?
946
名前:
デフォルトの名無しさん
:2006/05/19(金) 02:39:05
DrawTextで文字を表示させようと思ったのですが
背景が白くなってしまいます。
背景を白く塗らなくするにはどうしたらいいのでしょうか?
947
名前:
946
:2006/05/19(金) 02:48:01
事故解決しました。
SetBkMode(hdc,TRANSPARENT);
948
名前:
デフォルトの名無しさん
:2006/05/19(金) 07:03:56
がんがれ
949
名前:
デフォルトの名無しさん
:2006/05/19(金) 07:55:18
>>950
踏んだ人 次スレよろしく
950
名前:
デフォルトの名無しさん
:2006/05/19(金) 11:32:55
>>949
次スレ立てたわん
951
名前:
デフォルトの名無しさん
:2006/05/19(金) 11:48:17
http://pc8.2ch.net/test/read.cgi/tech/1148005509/
乙
952
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:25:47
DrawFrameControlなのですが
ラジオボタンやチェックボックスは、
ボタンの位置やサイズ、テキストの位置は自分で計算するしかないのでしょうか?
953
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:29:10
>>952
DrawFrameControl は現状殆ど使い物にならないからやめた方がいいよ。
本物のコントロールを配置して、手前をWS_EX_TRANSPARENTなウィンドウで
覆っておくのがお勧め(何か上書きしたいならそのウィンドウで)。
954
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:42:22
>>953
やっぱしそうですか・・・。
「ボタンだけならどうにかなるけどチェックボックスとかはどうするのこれ?」って
結構迷いました・・・
というわけど教えてもらった方法を考えてみたいと思います
955
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:44:57
だれだ DrawFrameControl を薦めた香具師は
956
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:46:27
>やっぱしそうですか・・・。
最初から自分で作ればいいんじゃないか
957
名前:
デフォルトの名無しさん
:2006/05/19(金) 14:51:03
>>956
まぁ、そうでしょうけど作るのがしんどいだろうし(自分のレベルじゃ)
できたとしても違うものが出来そうなので・・・
958
名前:
デフォルトの名無しさん
:2006/05/19(金) 19:46:43
埋めようぜ
959
名前:
埋めようぜ
:2006/05/19(金) 20:04:50
乙女座の聖闘士は、
自分の写真と某アニメのロリキャラとの合成プリントシャツ着たキモオタデブ
960
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:12:37
なんでもいいので埋めてください。
961
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:18:56
SuspendThread
962
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:25:06
ExitThread
963
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:25:59
とりあえず
>>960
を埋めました
、、、、
_彡_, ,_ヾ
/∩|;`"皿`"|) =3
くヘ | ̄ヽL| |」 ]つ ┐
|j、__| |_| ┰'’
|__|_| _||_ (○)
|__)_) | ∪ | |/)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
⊂⌒~⊃。Д。)⊃
964
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:26:02
FreeLibraryAndExitThread
965
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:28:47
CreateWindowは存在しない!
966
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:39:52
_onexit( exit_func );
...
int exit_func()
{
967
名前:
デフォルトの名無しさん
:2006/05/19(金) 21:56:57
BUTTONウィンドウの背景色を
灰色じゃない色(例えば、赤)に変えるにはどうしたらいいのでしょうか?
968
名前:
デフォルトの名無しさん
:2006/05/19(金) 22:11:04
2つのPOINT構造体からRECT構造体を返す関数はないでしょうか?
969
名前:
デフォルトの名無しさん
:2006/05/19(金) 22:36:01
>>968
それくらい自分で作れ。
そういえばMFC/ATLのCRectにはPOINTとSIZEを受け取るコンストラクタがあった気がする。
970
名前:
デフォルトの名無しさん
:2006/05/19(金) 22:41:46
>>969
そういう関数が最初からあるんだったら
そちらを使ったほうがいいかなと思ったのでとりあえず・・・
ないのでしたら自作します。
971
名前:
デフォルトの名無しさん
:2006/05/19(金) 22:48:58
RaiseException(
0
, dwExceptionFlags //復帰不可能
, 0, NULL ) ;
972
名前:
971
:2006/05/19(金) 22:51:48
__except(EXCEPTION_EXECUTE_HANDLER) { /*typo*/ }
//素で間違えたOrz
973
名前:
デフォルトの名無しさん
:2006/05/20(土) 02:06:49
いいこと思いついた
お前らこのスレを埋めろ
974
名前:
デフォルトの名無しさん
:2006/05/20(土) 02:10:07
よっし、お前が埋めろ
975
名前:
デフォルトの名無しさん
:2006/05/20(土) 10:32:03
>>968-970
単純にコピーでいいとは限らない訳だがみんなはどうしてる?
976
名前:
デフォルトの名無しさん
:2006/05/20(土) 10:46:30
namespace foo {
class RECT
{
::RECT rect ;
public :
RECT(::POINT left_top, ::POINT right_bottom)
{
rect.left = left_top.x ; rect.top = left_top.y ;
rect.right = right_bottom.x ; rect.bottom = right_bottom.y ;
}
operator ::RECT() { return rect ; }
} ;
} //namespace foo
うーん、激しく車輪の再発明な気がしないでもない。
977
名前:
デフォルトの名無しさん
:2006/05/20(土) 11:27:35
RECT のポインタを渡して中身を書き換えたときに
元の POINT の中身も換わって欲しかったりすることない?
978
名前:
デフォルトの名無しさん
:2006/05/20(土) 11:35:08
よくわからないが、CRectをコピれば終わらないか?
979
名前:
デフォルトの名無しさん
:2006/05/20(土) 11:46:41
ソースみたけどやっぱりコピってるんだね
980
名前:
デフォルトの名無しさん
:2006/05/20(土) 11:48:43
SetRect
981
名前:
976
:2006/05/20(土) 13:13:28
>>979
いや、そのヘッダは読んでいないけど、誰が書いても同じものになると思う。
982
名前:
デフォルトの名無しさん
:2006/05/20(土) 13:18:18
コピってるっていう意味は元のPOINTの
インスタンスにデータをコピーしてるってことです
983
名前:
デフォルトの名無しさん
:2006/05/20(土) 13:18:54
ごめん文章がおかしくなった
コピってるっていう意味は元のPOINTのデータを
RECTのインスタンスにコピーしてるってことです
984
名前:
デフォルトの名無しさん
:2006/05/20(土) 13:20:50
afxwin1.inl というインライン定義記述用ソースファイルの中に
// CRect
_AFXWIN_INLINE CRect::CRect()
{ /* random filled */ }
_AFXWIN_INLINE CRect::CRect(int l, int t, int r, int b)
{ left = l; top = t; right = r; bottom = b; }
_AFXWIN_INLINE CRect::CRect(const RECT& srcRect)
{ ::CopyRect(this, &srcRect); }
・・・
こういうのが延々と続いていました
985
名前:
976
:2006/05/20(土) 13:48:09
>>982
ここで、POINT構造体のラッパも用意してみる。
処理は全部、全部クラス内に記述する。
RECT rect = foo::RECT(foo:POINT(0, 0), foo::POINT(640, 480)) ;
賢いコンパイラなら、インライン展開したほうが得であると考えて、
インライン展開->さらに最適化->普通のRECT構造体に値を設定した場合と、なんら変わらない処理に。
というかコピーとかいうのは、どういう意味で使っているのだろう。
986
名前:
976
:2006/05/20(土) 13:49:37
あ、POINT構造体とか言っている時点で、そもそも上の例は間違っているか。
普通のRECTなら、
RECT rect = {0, 0, 640, 480} ;
でいいか。
987
名前:
デフォルトの名無しさん
:2006/05/20(土) 16:40:03
MFC使おうよ
988
名前:
デフォルトの名無しさん
:2006/05/20(土) 16:53:20
>>985
わかりにくくてすみません
POINT p1 = { 5, 7 };
POINT p2 = { 13, 31 };
RECT r = hoge(p1, p2);
ここまではみなさんの考えてることと同じなのですが、
r.lefttop.x = 3;
としたときに、もとの
p1.x も 3 になってほしいのです
989
名前:
デフォルトの名無しさん
:2006/05/20(土) 16:59:22
struct HOGE
990
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:01:18
間違えたorz
struct HOGE
{
POINT lefttop ;
POINT rightbottom ;
} ;
こんな感じかな。
こんなあほみたいなテクニックを使う、
わかりにくいコードなんて、読みたくないが。
991
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:11:11
それじゃだめでしょ
992
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:15:56
>>991
オーケー
>>988
を読み直した。
コンストラクタでp1,p2の参照を取って、メンバに保持しておき、
RECTフェイクなクラスが変更されたら、参照も変更する。
ますます読みたくないコードだ。
993
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:26:10
>>978
とか
>>980
とか
>>987
を無視するあたりどう見ても(ry
994
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:27:46
埋めようよ
995
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:28:25
埋めてしまえ
996
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:30:05
梅
997
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:30:27
もったいないスレの使い方を・・・
998
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:31:26
いいじゃんいままでそうやって埋めてきたんだし
999
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:31:45
1000だったらVistaで新API UninstallWindowsVista導入
1000
名前:
デフォルトの名無しさん
:2006/05/20(土) 17:32:27
1000
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.