1 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:23:00 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build85 pc12.2ch.net/test/read.cgi/tech/1262430441/
46 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:46:55 ] >>44 むしろ、MsgWaitForMultpleObjectでソケットが待てないソースを教えてほしい。 WaitForMultipleObjectsとかでもソケット使えるのだから、 直感的にはMsgWaitForMultpleObjectでダメとは思えないのだけど。
47 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:51:09 ] >>45 つMFC
48 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:56:55 ] >>45 Windows API自体オブジェクト指向の固まりだと言うことに気付け。 ハンドル1つ1つがインスタンス。 それはともかく、ウィンドウプロシージャをクラスのメンバ関数にする方法は いくつかあって誰か書いているはずだから、ググれば見つかる。 それでメインウィンドウという括りで1つのクラスが出来上がる。
49 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:59:20 ] ExtTextOutで文字を表示する時に等間隔にしてくれるような関数ありますか? 例えば日本語(全角)5文字表示する所に半角10文字のスペースを上書きしても 日本語の方が横長みたいで全て埋まらないのです まとめると、全角5文字を半角10文字のスペースできっちり埋めれるようにするような関数はありますか?
50 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 01:06:27 ] 等幅フォントは?
51 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 01:13:26 ] >>50 CreateFontのcharsetに等幅フォントやってみようと思います ありがとうございました
52 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 02:40:04 ] >>45 WTLもあるよ
53 名前:44 mailto:sage [2010/02/09(火) 08:44:11 ] >>46 *WaitFor*Objectで待てるものに、ソケットが対象になっていませんでした。 ハンドルしか待てないからソケットは待てないと思っているのですが、 何か方法があるのでしょうか? 単純に待つハンドルの配列にソケットを突っ込めばいけてしまうとかでしょうか? MFCのAPIを使えば、ソケットとハンドルが関連付けられてWaitFor*でも 待てるっぽいところまでは分かったのですが、今回はMFCが使えないので…。
54 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:06:56 ] >>43 毎回CreatePopupMenu呼んでるから
55 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:40:54 ] 他のスレッドからの要求もソケットでやればいいな
56 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 09:42:19 ] >>44 WSAEventSelect
57 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 11:54:22 ] CSSパーザ探してます。 だいぶ昔に作り捨てたプログラムではスタイルシートをres:プロトコルでIEコン ポーネントに流し込む手法を使いましたが、この方法は使えなくなってしまった ようで、IHTMLStyleSheet::addRuleで流し込む必要ががあるようです。 元データ自体はCSSの文法で持ちたいので、C/C++から利用できるフリーのCSSパー ザまたはIEコンポーネントの再利用法は有りませんか?
58 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 12:57:07 ] >>57 です 正規表現だけでいけるような気がしてきたので質問取り下げます。
59 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:54:13 ] TEXTマクロって1バイト文字には使わなくていいんだよね?
60 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:09:28 ] _tcslen()に1バイト文字入れてみ
61 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 16:48:18 ] unicode/MBCSをコンパイルオプションで切り替える、ってことをしないならTEXT自体使わなくていい。 切り替えるからTEXT使う、なら基本は全部に使う。(処理の詳細的に使わない場合はあり得る) 切り替えないけどLよりTEXTが好き、でも別にいい。 だいぶスレ違いな気がする。
62 名前:デフォルトの名無しさん [2010/02/09(火) 19:06:03 ] ファイルが関連付いているアプリケーションのアイコンを取得したいと思っています。 ExtractAssociatedIcon という API を使用すると 32 x 32 のアイコンしか取得することができません。 48 x 48 のアイコンを取得したいのですが、どのようにすれば良いでしょうか?
63 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:50:25 ] 漏れの記憶では xn_resourceeditor
64 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:02:59 ] >>56 ありがとです。 いろいろ検討してみます。
65 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 04:59:51 ] IMPLEMENT_DYNAMIC(CCustomFileDialog, CFileDialog) CCustomFileDialog::CCustomFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd) { m_customDlgPtr = this->GetIFileDialogCustomize(); if(m_customDlgPtr != NULL){ m_customDlgPtr->AddComboBox(IDC_COMOBOBOX1); m_customDlgPtr->AddControlItem(IDC_COMOBOBOX1,101,L"foo"); m_customDlgPtr->AddControlItem(IDC_COMOBOBOX1,102,L"bar"); } } BOOL CCustomFileDialog::OnFileNameOK() { DWORD Item; m_customDlgPtr->GetSelectedControlItem(IDC_COMOBOBOX1,&Item); return CFileDialog::OnFileNameOK(); } コンボボックスから選択中のアイテムを取得できたんだが、そこから文字列を取得する方法がわからない。 くぐってもさっぱり出てこないので教えてほしい。
66 名前:デフォルトの名無しさん [2010/02/10(水) 10:35:41 ] コア別のCPU使用率を取得する方法を教えてください。
67 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:39:47 ] パフォーマンスカウンタの値を見る パフォーマンスカウンタデータヘルパーAPIっていうバカ長い名前のAPIがあるのでそれを使います
68 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:41:47 ] 使いかたの説明は面倒なので↓でも見て自分で考えてください nienie.com/~masapico/api_PdhGetRawCounterValue.html
69 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:31:50 ] >>65 記憶によると、comboboxの各アイテムに文字列へポインタをユーザ定義のデータと して埋め込んでおく。
70 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:33:51 ] コントロールの文字を小さくするには?
71 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:39:16 ] 小さいフォントをセットすればいい
72 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:46:50 ] >>65 選択中のならGetWindowText()でできた希ガス リストボックスのほうならCB_GETLBTEXTとか
73 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:11:54 ] >>69 >>72 とんくす。
74 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 10:01:07 ] AnimateWindowでウインドウのフェードアウトをする方法を検索すると、 AW_BLEND | AW_HIDE としているのが見つかるのですが msdnには、AW_BLENDとAW_HIDEを併用してはいけないと書いてあります。 どうやればいいのか教えてください。
75 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 10:52:41 ] 英語版のMSDNにはそんな事書いてないけど、日本語版が間違ってるんじゃ?
76 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 10:55:07 ] 日本語版は間違いだらけ 戻り値 True/False 間違えてて正反対の意味なんてことも
77 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 11:04:31 ] >>74 msdn.microsoft.com/ja-jp/library/ms997507.aspx
78 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 11:16:43 ] msdnに間違いがあるとは考えませんでした ありがとうございました
79 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 11:29:18 ] MSDNだけじゃなくて ●●入門とかの言語とかフレームワークとかの書籍も結構致命的な間違いがある
80 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:40:49 ] ツールバーとステータスバー 両方画面の下に共存させるにはどうしたらいい?
81 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:51:32 ] >>76 APIは一度公開したらインターフェースを返ることは 出来ないからな。使われない余計なパラメータがあ ったりするのはそういう理由だし。 時には内容はほぼ同じだがインターフェースだけ 変えたAPIとかあるらしいし。古いAPIの更新を やめて新しいAPIとして管理していくというやり方 を取らざるを得ないケースも多いだろうし 結局数は増える一方。墓地の埋葬者名簿みたいな もので正確性を永続的に保証できるものじゃない だろ
82 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:55:56 ] 日本語ページが正しくないことの言い訳としては筋違い。
83 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 16:20:50 ] >>81 その言い訳は「かつては正しかった」という根拠を出してからにしろ。
84 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:03:31 ] >>81 >墓地の埋葬者名簿 いいたとえだなw確かにそうだ 関数の戻り値の一貫性とか破綻してるから困ったもんだな・・・
85 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:54:48 ] MSの技術者でさえこんな設計するんだから 一般人のコードが汚くても誰も責めることはできない
86 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:58:55 ] >>85 こういう奴と一緒に仕事はしたくないな。
87 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:46:47 ] いっしょにコードを 書きませんか? ∧_∧ [windows.h] (・ω・)丿 ッパ . ノ/ / ノ ̄ゝ
88 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:28:50 ] msdn.microsoft.com/en-us/library/ms633494%28VS.85%29.aspx >Return Value > Not used. msdn.microsoft.com/ja-jp/library/cc410802.aspx >戻り値. >関数が成功すると、0 以外の値が返ります。 >関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。 戻り値の説明が勝手に増えててしかも間違っている 翻訳ミスどころかゴミ埋め込んでどうするw
89 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:32:45 ] MSに言えよ
90 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:35:19 ] Win関連の訳本はASCII時代がよかったな、1000ページ本とかバンバンだしやがって・・・
91 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:36:52 ] 肘で押えながら検証コード打ったりな
92 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:08:35 ] >>88 そもそも、何でNot usedなのにBOOL返すようになってるんだ?
93 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:11:51 ] >>92 元々 BOOL で使用されていたが ドキュメントが糞で誰も使わなくなったから Not used に書き直された
94 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:19:15 ] VC++でヘッダーコントロールを扱っていますが、 HDITEM hdi; SendMessage(hwnd,HDM_GETITEM,0,(LPARAM)&hdi); sprintf(str1,"%d",hdi.cxy) でヘッダーアイテムの幅が取得できるはずなのですが、上手くいきません 参考書はVC++逆引き大辞典です どうしたらいいでしょうか?
95 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:23:29 ] 一応、FALSEを返す状況もあるんだけどな。
96 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:44:42 ] HttpQueryInfoでヘッダーの内容を全部文字で見たい場合に HTTP_QUERY_RAW_HEADERS_CRLFを指定してるのですが どうも中に書き込まれた情報は2バイトコードになっているようです この辺の文字コードを切り替えるにはどうすればいいのでしょうか?
97 名前:96 mailto:sage [2010/02/11(木) 23:43:54 ] 自己解決しました 参考にしたソースがwchar_tを前提にしてない古い物だったのが原因でした
98 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:06:37 ] Windows 7 Home Premium 64bit版のPCで Win32 APIを使ってアプリケーション製作できる?
99 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:20:48 ] できる
100 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:26:03 ] >>99 サンクス!助かった
101 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:28:11 ] Wininet関連のプログラム書いてるんですが 勉強もかねてHTTPの要求ヘッダの中身がどうなってるかみたいのですが どうやれば見れますかね?
102 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:31:27 ] このスレで聞くってことは、パケットを見るプログラムを作りたいって話か?
103 名前:デフォルトの名無しさん [2010/02/12(金) 01:33:38 ] >>102 いいえ そういうのじゃなくて2chの専ブラの通信部分ですね www.monazilla.org/index.php?e=198 デバックもかねて上記のページに書かれてるようなヘッダーになってるかだけみれればいいんですが
104 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:35:08 ] HttpQueryInfoで受信情報のヘッダーは見れるので 送信側も何か方法があるのかなあと思いまして
105 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:00:54 ] 自分で鯖を立てて送られてくる情報をみるかWireSharkのようなモニターソフトで見るのが早いですかね・・・?
106 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:02:20 ] 実際のデータがどうなってるかって事だろ? パケットを見るプログラムじゃないか
107 名前:デフォルトの名無しさん [2010/02/12(金) 02:06:11 ] >>106 いや・・・そういう風に言われても勉強初めてすぐなのでよくわからないです InternetOpen InternetConnect HttpOpenRequest HttpSendRequest ←この段階で送るであろうデータさえ見れればよかったのですが
108 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:14:30 ] しつこい!
109 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:14:57 ] >>105 proxy + log
110 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:17:25 ] チェックの入っているラジオボタンのウィンドウハンドルを得るにはどうすればよいのでしょうか。 SendMessageで総当たりをすればどれにチェックが入っているのか分かりますがもっと良い方法はありませんか? ラジオボタンがチェックされた時に生じる処理の中でそのハンドルを記憶させるようにしてみたのですが、 グループが複数あった場合にそれがどのグループのボタンなのか判断させる方法がわかりませんでした。 Borland C++ 5.5.1 for Win32を使っています。
111 名前:110 mailto:sage [2010/02/12(金) 02:20:56 ] すみません何か勘違いしてました。 自己解決しました。
112 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 04:09:59 ] 見た目を分かりやすくしようとラジオボタンをグループボックスで囲んだところ ラジオボタンをクリックしたときにWM_COMMANDが発生しなくなってしまいました。 どうすれば再びそれが発生するようになりますか?
113 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:02:24 ] すみません自分なりに色々調べてみたんですが解決しなかったので質問します。 ツリービューコントロールに関してなんですが、.NET には TreeNode.Level というノードの深さを取得するプロパティがあるのですが、 これに相当するようなノードの深さを取得できるような関数が標準APIにもあるのでしょうか? それとも自分で組まないといけないのでしょうか? ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.treenode.level(VS.80).aspx
114 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:06:17 ] C++ってあるけど上の方に メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。 ってあるからC++/CLIの話かね・・・ というかWTLやMFCって.netと比べるとかなり見劣りするからなあ .net環境で作ってていきなりネイティブC++とかいくと部品の陳腐さに泣きそうになる
115 名前:113 mailto:sage [2010/02/12(金) 06:27:51 ] >>114 すみません説明不足でした。PlatformSDKのことです。 第115章 ツリービューにメニューをつける ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_115.htm ↑このサイトを参考に組んでいたんですが、ツリービューの項目の深さを取得しようと思い、 調べていたところにちょうどそのページを見つけたので質問しました。
116 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:02:58 ] 直接は無さそうね 作るにはTVM_GETNEXTITEMかな
117 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:40:02 ] >>114 修羅の国では外部コンポーネント、サービスの利用方法や足りない部品は全部自力調達ですよ( ^ω^) 先輩・・・.NETしたいです
118 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:43:45 ] いいや駄目だね お前は一生修羅の国から出さん
119 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:44:58 ] でもどっとねっつはリバースしやすいからなあ
120 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:53:39 ] C++のお陰でソフトウェアの進歩は10年遅れたわな
121 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:06:37 ] >>120 いや C++ が糞なおかげで Rupy や Python が生まれたと思う C++ の出来が良かったらきっと そいつらは生まれていなかった
122 名前:デフォルトの名無しさん [2010/02/12(金) 10:09:51 ] 画面の解像度を取得する方法を教えてくれ
123 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:11:20 ] げっとしすてむめとりくす
124 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:11:53 ] www.google.com/search?hl=ja&q=Windows+API+ 画面の解像度
125 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:13:18 ] pc12.2ch.net/test/read.cgi/tech/1264745386/
126 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:15:47 ] >>125 今時のライブラリでデフォルトUTFじゃないとか死ね
127 名前:112 mailto:sage [2010/02/12(金) 14:29:15 ] >>112 ですがどなたか教えて頂けないでしょうか? ソース等アップロードしました。よろしくお願いします。 www1.axfc.net/uploader/Sc/so/82145.zip
128 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:54:07 ] 悪阻
129 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:56:22 ] >>127 了解
130 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:15:49 ] DirectWriteなんですけど、ここのサンプルをコンパイルして実行すると、 ttp://msdn.microsoft.com/ja-jp/windows/ee426939.aspx Ex1とEx2は開いたウィンドウを移動するかアイコンにして戻すかしないと文字が出ないし、 Ex3は黒ベタで何も出ないです。環境はWin7 x64なんですが、ちゃんと表示されてる人います?
131 名前:113 mailto:sage [2010/02/12(金) 19:53:16 ] >>116 >>117 やはり自力で組まないといけないんですね ぬこにつられて修羅の国に迷い込んでしまったようです ありがとうございました
132 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:04:07 ] .Netだとオブジェクトを動的に作る際名前に階層を盛り込んだけどなあ とC++のTreeView調べてたらアイテムの構造体ってろくな情報埋め込めないなw typedef struct _TV_INSERTSTRUCT { HTREEITEM hParent; HTREEITEM hInsertAfter; TV_ITEM item; } TV_INSERTSTRUCT, FAR* LPTV_INSERTSTRUCT; 自分で同じような複製ツリーを作ってそっちで管理してみたら?
133 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:08:55 ] typedef struct _TV_ITEM { tvi UINT mask; HTREEITEM hItem; UINT state; UINT stateMask; LPSTR pszText; int cchTextMax; int iImage; int iSelectedImage; int cChildren; LPARAM lParam; } TV_ITEM, FAR *LPTV_ITEM; こっちもあるけどノード登録の際の連絡用とか検索ででてくるなあ
134 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:34:17 ] あとはWTL使うくらい? home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl10-06/index.html home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl10-07/index.html
135 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:41:52 ] >>132 おいこらTVITEMの中身見ろw 大体win32がヘボかったら.netもヘボくなるわけで・・・どっちも同じコモンコントロールなわけで
136 名前:113 mailto:sage [2010/02/12(金) 21:10:43 ] >>132 >>133 >>134 >>135 親:0 子:1 孫:2 という深度レベルを項目ごとのTVITEMのlParamに格納すればできそうですね! 本当にありがとうございました!
137 名前:デフォルトの名無しさん [2010/02/13(土) 21:17:25 ] タブコントロールは CreateWindowEX で作成するとのことですが、 メイン・ウィンドウのメニューから[設定]なとの項目をクリックして、 タブコントロールのウィンドウをポップ・アップさせる場合の手順は、 1)CreateWindowEX でタブ・コントロールの親ウィンドウ (hwndParent) を作成. 2)hwndParent の子ウィンドウとして CreateWindowEX でタブ・コントロールを作成. するという手順になると思うのですが、ここで、タブ・コントロールを操作する メッセージなどを処理するプロシージャ−が必要になります。ところが、 CreateWindowEX にはご存知のとおりプロシージャ−関数を受け取る引数はありません、、、 ということは、hwndParent にメッセージ・ループを作らざろうえず、メイン・ウィンドウの メッセージ・ループと”競合?”してしまうので、 A)hwndParent はスレッドを作って、そこでメッセージ・ループを回す??? という、プログラミング・スタイルになると思うのですが、違いますが??? 当方、初心者でして、ズバリご指摘おねがいします。 タブ・コントロールに限らず、ダイアログ・テンプレートを使わずに メイン・ウィンドウからコントロールの Owned ポップアップ・ウィンドウを開く場合 の手順は、どうなるのでしょう???
138 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:42:53 ] 設定ならプロパティシート使った方が簡単だけど、自分で作る場合の話なら タブコントロールからのメッセージはその親ウィンドウにWM_NOTIFYとして飛んでくるので すべて親ウィンドウのプロシージャで処理できる それと、ウィンドウプロシージャはCreateWindowExでなくウィンドウクラスで設定してそれをCreate〜に渡してる タブコントロールのウィンドウプロシージャはWindowsが持ってるのでそっちに全部お任せ これはタブコントロールに限らずどんなコントロールでも同じなので プログラムを作る側は親ウィンドウのプロシージャのことだけ考えればいい
139 名前:デフォルトの名無しさん [2010/02/13(土) 22:05:23 ] リストボックスをウィンドウのサイズが変更されても常に中央に配置されるようにしたいのですが どうしたらいいのですか?
140 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:09:15 ] ありがとうございます。 『タブコントロールからのメッセージはその親ウィンドウにWM_NOTIFYとして飛んでくる』 とのことですが、タブコントロール単独でポップ・アップ・ウィンドウをつくれるのでしょうか? タブコントロール単独でポップ・アップさせようとすると移動もサイズ変更も閉じることもできません、、、 タブコントロールを子ウィンドウとしてポップ・アップさせると、メッセージはタブコントロールの 親に行くのですが、その「親」≠「メインウィンドウ」なので、タブコントロールの「親」に、メッセージを 受け取るプロシージャ−が必要になるのではないですか??? 自分はなにか、根本的なところで勘違いをしていると感じるのですが、それが「何か」がわからない ところが、トホホな現状です。 (T皿T)
141 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:10:00 ] ウィンドウのサイズを元に座標を算出してMoveWindowすればよかろうに
142 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:14:27 ] >>140 親ウィンドウはあなたが>>137 で言っていたhwndParentだよ メインウィンドウを親としてhwndParentを作ってタブをhwndParentの子ウィンドウにする hwndParentを自分でウィンドウクラスを登録するなりして作成すれば、そのウィンドウプロシージャは自分で管理できる
143 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:17:57 ] つーか、どこのウィンドウアプリでタブがポップアップするんだよ? そんなのありえないことくらい、普通わかるだろ?
144 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:36:27 ] ……、すいませんでした。 自分が作ろうとしていたのは、『プロパティシート』であって、『タブコントロール』では ありませんでした、、、、、、 orz。 どうもおかしい、なにか変だと思っていましたが、『プロパティシート』を『タブコントロール』と ”根本的に勘違い”してました。お騒がせしました。
145 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 04:36:24 ] レジストリの値が変更されたことを知るAPIは有りませんか?
146 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 04:37:26 ] APIHook