- 1 名前:デフォルトの名無しさん [2007/08/01(水) 06:23:28 ]
- Microsoft Foundation Classライブラリ専用スレです。
- 388 名前:デフォルトの名無しさん [2007/11/09(金) 16:37:49 ]
- CHTMLViewクラスを使って表示したHTML文書のテキストの
色などをプログラム中から変更することはできるでしょうか? PutPorpertyというメソッドを使えばできそうな気がするの ですが使い方がよく分かりません。 <P class='test'>Hello, World</P> というテキストの色を赤にする方法を教えてください。
- 389 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:49:22 ]
- >>388
CHTMLViewのGet/SetPropertyは、単にIWebBrowser2の同メソッドが呼ばれるだけ。 GetHtmlDocument()から始めるしかないと思う。という訳で、試しに書いてみた。 ちなみに、MFCでなくてATLだが全く問題無い。 // 1. CSSを追加してみる方法 CComPtr<IDispatch> spIDisp; spIDisp.Attach(GetHtmlDocument()); CComQIPtr<IHTMLDocument2> spIDom(spIDisp); CComPtr<IHTMLStyleSheet> spCSS; spIDom->createStyleSheet(NULL, -1, &spCSS); long idx; spCSS->addRule(CComBSTR(_T("P.test")), CComBSTR(_T("color:red")), -1, &idx);
- 390 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:53:27 ]
- // 2. エレメントに直接スタイルを追加してみる方法
CComPtr<IDispatch> spIDisp; spIDisp.Attach(GetHtmlDocument()); CComQIPtr<IHTMLDocument2> spIDom(spIDisp); CComPtr<IHTMLElementCollection> spElemCol; spIDom->get_all(&spElemCol); spIDisp.Release(); spElemCol->tags(CComVariant(_T("P")), &spIDisp); CComQIPtr<IHTMLElementCollection> spElemCol2(spIDisp); for ( int idx = 0 ; ; idx++ ) { spIDisp.Release(); spElemCol2->item(CComVariant(idx), CComVariant(), &spIDisp); if ( !spIDisp ) break; CComQIPtr<IHTMLElement> spElem(spIDisp); CComBSTR clsname; BSTR bstr; spElem->get_className(&bstr); clsname.Attach(bstr); if ( clsname != _T("test") ) continue; CComPtr<IHTMLStyle> spStyle; spElem->get_style(&spStyle); spStyle->put_color(CComVariant(_T("red"))); }
- 391 名前:388 mailto:sage [2007/11/09(金) 22:57:03 ]
- >>389 >>390
ありがとうございます。ATLは全く知らないのでコードは謎ですが、 必要なヘッダを調べてインクルードして何とか両方とも動かすこと ができました。 if ( clsname != _T("test") ) continue; のところで エラーが出たので調べてみると CComBSTR::operator==は 定義されていましたが CComBSTR::operator!=は定義されて いませんでした。if ( clsname == _T("test") ) { /*../*/ } と直すとコンパイル通りました。これはVisual C++6.0の 不具合かもしれません。 師匠になってほしいです。
- 392 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 02:19:17 ]
- blogs.msdn.com/somasegar/archive/2007/11/09/visual-c-libraries-update.aspx
結局捨てないのか ともかく壮絶なソースコードが見れそうだ
- 393 名前:デフォルトの名無しさん [2007/11/14(水) 11:34:45 ]
- CReBarでレバーコントロールを利用しているのですが、
複数のコントロールを1つのバンドに含めるにはどうすればいいでしょうか。 CReBar cRebar; … cRebar.AddBar(コンボボックス) cRebar.AddBar(ボタン) とすると、コンボボックスとボタンが別々のバンドに配置されますが、 目的としては、コンボボックスとボタンを同一バンドに配置したいです。
- 394 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:30:31 ]
- 各バンドには 1 つしか子ウィンドウ (コントロール) を含むことができません。
各バンドに複数の子ウィンドウを含めたい場合は、この点が制約になります。
- 395 名前:393 mailto:sage [2007/11/14(水) 17:10:33 ]
- なるほど、ありがとうございます。
ちょっと微妙ですけど、コンボボックスとボタンをスタティックコントロールの子にして、 そのスタティックコントロールをAddBarすることにしました。
- 396 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:22:50 ]
- MFCでExcelのセルみたいなぐりっどコントロールってないんですか?
- 397 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:22:56 ]
- ありません。ListCtrlを自前で拡張するか、CodeGuruでそうしたものを探すか、市販のライブラリを使うか、
ExcelをDDEで使うことになるかと。
- 398 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 18:29:30 ]
- 拡張DLLでダイアログクラスをエクスポートしようとしているのですが、
ヘッダのクラス宣言の中に enum { IDD = IDD_… }; という記述があります。 このリソースIDは拡張DLL側のResource.hに書かれているものです。 拡張DLLを使う側がこのヘッダをインクルードすると、 リソースIDが見つからないと言われると思うのですが、 拡張DLLでダイアログクラスをエクスポートする場合 この部分はどのように対応すればよいものなのでしょうか。
- 399 名前:デフォルトの名無しさん [2007/11/16(金) 16:17:31 ]
- 保守!
- 400 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:52:56 ]
- >>398
そのリソースIDが記述されてるヘッダをインクルードしなきゃいんじゃね? 使う側は、拡張DLL側のリソースIDなんて余計なだけじゃね?
- 401 名前:デフォルトの名無しさん [2007/11/17(土) 18:06:11 ]
- MFC VC でセマフォや共有メモリみたいなのって無いの?
- 402 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:15:43 ]
- >401
自分で調べようとも思わないのか?
- 403 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:25:37 ]
- ぐぐってみようとも思わなかったんだろうな
- 404 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:25:53 ]
- VS2005付属MSDNのキーワードに「セマフォ」って入れるだけで
あっさり対応するクラスが見つかった件について。 おまえやる気無いだろ。氏ね。 >>401
- 405 名前:デフォルトの名無しさん [2007/11/17(土) 22:35:15 ]
- >>404
そんな高価なツールもってねえよばーーか
- 406 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:04:35 ]
- VS2005のどこが高価なんだよw
今までのこと考えたらクソ安いつーの つーかMSDNのちょっと遅れのイメージなんか完全フリーじゃねえか
- 407 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:12:13 ]
- MSのサイトでみれるMSDNはVS2005のとは別ものなの?
同じなら、オンラインで検索すれば。
- 408 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:15:43 ]
- 基本的には同じはずだが…
- 409 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:58:57 ]
- VS2005 MFCです
折れ線グラフを描画する、ツールを作りたいんだけど MFCのツールボックスには、ピクチャーコントロールというツールと カスタムコントロールというのがあるけれど、どう違うのでしょうか? また、グラフを描画させるにはどちらのコントロールを選んだ方がいいのでしょうか?
- 410 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:29:12 ]
- >>409
つ[TrueWinChart]
- 411 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:43:10 ]
- >>410
>>409です True WinChart for .NETですよね、標準価格:102,900円 そんな予算でないです
- 412 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:58:09 ]
- 自分で描画するだけだからコントロールは必要ない
- 413 名前:409 mailto:sage [2007/11/18(日) 19:11:21 ]
- >>412
ダイアログに直接描画するのではなく、ピクチャーコントロールかカスタムコントロールに 描いて、それをサブクラス化したいんだけど、違いがよく分からないんだよね
- 414 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:24:32 ]
- 違いは標準かカスタムか
- 415 名前:409 mailto:sage [2007/11/18(日) 19:34:14 ]
- ということは、カスタムコントロールのほうが、拡張性(自由度)が
高いってことだね?
- 416 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:56:50 ]
- 描画するだけなら、単純にウインドであれば良いだけじゃないの?
ゴテゴテ機能が付いている方がいろいろな横槍がはいって返って上手くいかないかもしれん。
- 417 名前:409 mailto:sage [2007/11/18(日) 20:34:14 ]
- >>416
言われてみればそうかも知れないな、 コントーロールを貼り付けて、描画専用クラスを別に書き、シリアル化したデータを 流し込んで、グラフを描画させようと思ったけど よく考えたら、描画専用クラスは、ダイアログに描こうがコントロールに描こうが必要なわけで 対象となるオブジェクトがどっちになろうが、使えるクラスを設計する方が賢いかもしれないね
- 418 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:17:07 ]
- .flvから0.5秒おきのBMPを作りたいんですが
何かヒントだけでもいただけたら
- 419 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:24:14 ]
- ヒント MFCと関係ない
- 420 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 13:34:30 ]
- >>419
とは思ったのですがやはりプログラミングのプロ集団は MFCスレかと思いまして。
- 421 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 14:26:56 ]
- B's Recorderみたいな画面作りたい><
- 422 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 15:29:48 ]
- >>420
DirectShowスレがあるぞ
|

|