1 名前:デフォルトの名無しさん mailto:sage [03/05/06 11:04] クロスプラットフォームGUIライブラリのwxWindowsについて語りましょう。 本家 www.wxwindows.org/ dW : Linux : wxWindowsの概要 www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html SunWorld Online:wxWindows――無名だが成熟したGUIツールキット www.idg.co.jp/sw/back/200102/20010219_01_report.html メルマガ www.mag2.com/m/0000108320.htm 1はこれからインストールします
730 名前:思兼 ◆l3iwkTImVo mailto:sage [04/03/16 21:38] ドキュメントのバージョンアップの問題はこれからも起こるから,原文のバージョンアップに 対応する方法を確立しておいた方が良いかも. 原文の旧バージョンと新バージョンをdiffして,変更があったファイルをリストアップして, 日本語訳をバージョンアップに対応させるたびにリストからそのファイルを削除していくという 方法はどうだろう.もちろん変更があったファイルのリストはcvsで管理すると.
731 名前:デフォルトの名無しさん mailto:sage [04/03/17 18:05] いいと思います...が,sfで管理者やっている面子がスレッドを 見てないようですね...
732 名前:思兼 ◆l3iwkTImVo mailto:sage [04/03/18 03:00] とりあえず,wxWindows→wxWidgetsの置換と,本家URLの置換をしてみました. 日本語版プロジェクトサイトで公開してるのを見て,問題があったら指摘してください.
733 名前:デフォルトの名無しさん mailto:sage [04/03/18 14:03] ていうかコンパイルできる環境は構築したけど、難しいなこれ。 リファレンス見ても全く分からん。機能があるのは分かるが使い方が分からん。 ここにいる人って、実際にリファレンス使ってプログラミングしてるの? リファレンスを翻訳されるのは有難いが、分かりやすいチュートリアルが欲しいところ。 ウィンドウを出すだけじゃなくて、他のコントロールを使う方法とか・・・。
734 名前:デフォルトの名無しさん mailto:sage [04/03/18 14:23] >>733 僕は今の所リファレンスだけで十分だけど。 使い方分からんのは例えば何?気が向いたらチュートリアル書くよ。
735 名前:思兼 ◆l3iwkTImVo mailto:sage [04/03/18 14:44] >>733 使い方が判らないならサンプルプログラムを見たら良いと思うよ.
736 名前:デフォルトの名無しさん mailto:sage [04/03/18 15:12] wxTutorial.pdf wxWindows-2.4.2-PDF.zip prdownloads.sourceforge.net/wxwindows/wxWindows-2.4.2-PDF.zip
737 名前:デフォルトの名無しさん mailto:sage [04/03/18 15:43] >>734-736 レスさんくす。 とりあえず、サンプルプログラムとPDFを見てやってみることにします。
738 名前:デフォルトの名無しさん mailto:sage [04/03/18 16:02] topic overviewを見るのがおすすめ。
739 名前:デフォルトの名無しさん mailto:sage [04/03/19 14:43] Audacity audacity.sourceforge.net/about.php?lang=ja wxWindonwsで作られてるみたい GPLなのでソースコードも公開されてます
740 名前:灰 [04/03/21 09:09] 見てますョ。
741 名前:デフォルトの名無しさん [04/03/21 23:18] 2.4.2をダウンロードする下に、2.5.1って言うのがあるんだが、こっちを落したほうが良いの? 来たばっかでワカンネ…
742 名前:思兼 ◆l3iwkTImVo mailto:sage [04/03/22 01:50] >>741 安定版の2.4.2で良いと思うよ.
743 名前:デフォルトの名無しさん mailto:sage [04/03/22 02:00] このライブラリを使って作ったソフトを 商用としてパッケージや製品へのバンドルなどで 販売したとしてソースの公開は必要ですか? ソースを改変してなければ問題ないのかなと 認識してますが、あってますか?
744 名前:741 mailto:sage [04/03/22 07:46] >>742 サンクス。とりあえず、2.4.2でやってみます。 ageちまった…スマソ
745 名前:デフォルトの名無しさん mailto:sage [04/03/22 10:29] >>743 どこをどう読んでそう認識しました?
746 名前:デフォルトの名無しさん mailto:sage [04/03/23 01:46] >743 まずライセンス嫁 www.wxwindows.org/newlicen.htm L-GPLかwxWindows Library Licence, Version 3のどっちか守ればOK
747 名前:デフォルトの名無しさん mailto:sage [04/03/23 03:52] >>746 デュアルライセンスというわけではないので表現が変。 The wxWidgets 2 licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms.
748 名前:デフォルトの名無しさん [04/03/24 10:07] wxWidgets に名前変わったのかよ!!
749 名前:デフォルトの名無しさん mailto:sage [04/03/30 00:40] 非Windows以外の環境でwxHTMLに日本語表示できた人いらっしゃいます? Liunxでeuc-jp, utf-8, unicodeどれもダメ。念のためhtml中のcharsetも指定したけどダメ。 euc-jpとutf-8は文字化け、unicodeはエラーになる。 unicodeが有効にしてないため、 メニューやダイアログボックスは何も変換しなくてもそのまま表示されるけど、 wxHTMLだけがうまくいきません。成功した人、設定を教えて下さい
750 名前:デフォルトの名無しさん mailto:sage [04/03/30 10:04] >>749 フォントを設定していますか?
751 名前:デフォルトの名無しさん mailto:sage [04/03/30 13:03] 言い忘れましたがwxpython上です。でもソースみると単なるラッパーみたい。 >>750 一切していません。全てデフォルトでメニューなどはそのまま表示されます。 デフォルトフォント以外だとフォントを何にするかいちいちダイアログボックスで聞いて来るので うっとおしいのと、設定しても反映しないことがあるので。 wxHTMLだけ文字化けします。 wxhtmlwindowのSetFonts("", "", (10, 12, 14, 16, 19, 24, 32)) はセグメンテーションエラーになります。
752 名前:デフォルトの名無しさん mailto:sage [04/03/30 15:45] 私も wxPython ユーザですよ.ただし Windows でしか使いませんが. メニューやボタンにはシステムフォントが使われますが,wxHTMLWindow の デフォルトフォント指定は違うらしく,別個にフォントを指定してやる必要が あるようです.私は wxFontEnumerator() でフォント名一覧を作成してから, フォント名を明示的に指定して SetFonts しています.手前ミソですが, ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/monarch/Monarch/Monarchore.py?rev=1.11&content-type=text/vnd.viewcvs-markup を参考にしてみてください.
753 名前:デフォルトの名無しさん [04/03/30 20:26] MSYS と MinGW でビルドしようと思うんですが、 MMX 付きの Pentium と k6-2 以上で動くようにするには、 --host はどうしたらいいんでしょうか?
754 名前:デフォルトの名無しさん mailto:sage [04/03/30 21:03] >>752 フォント一覧を取り出すことができますが、SetFontsでセグメンテーション違反を起こします。 SetFonts("", "", (10, 12, 14, 16, 19, 24, 32)) で落ちるのでGTK自体に問題があるのかもしれません。あきらめます。
755 名前:デフォルトの名無しさん mailto:sage [04/03/31 00:54] i586-mingw32じゃないかな。
756 名前:753 mailto:sage [04/04/01 22:21] >>755 教えていただいたようにやってみました。 サンプルなどもコンパイルできて動いているようなので、 このまま行こうと思います。 ありがとうございました。
757 名前:デフォルトの名無しさん [04/04/02 22:12] MFCのプロパティシート/ページのようなのって無いですか?
758 名前:デフォルトの名無しさん mailto:sage [04/04/02 22:12] のひょーん
759 名前:デフォルトの名無しさん mailto:sage [04/04/11 15:21] VisualWx new release 0.8 Alfa 10 April 2004 visualwx.altervista.org/
760 名前:名無しさん@Vim%Chalice [04/04/20 11:05] デバイスコンテキストに回転した楕円形を描きたいのですが、どのように すれば良いのでしょうか?wxDC::DrawEllipseでは回転角度は指定出来ない ようですし、rotateぐらいのキーワードしか思いつかないのですが、調べて もwxDC::DrawRotatedTextぐらいしか見付からず、困っています。 どなたか教えて頂けませんでしょうか。お願い致します。
761 名前:760 mailto:sage [04/04/20 11:56] ドキュメントに無いけどwxTransformMatrixなんてのを発見しました。 これとcontribの中のcanvas使えば何とかなりそうかもです。
762 名前:デフォルトの名無しさん mailto:sage [04/04/20 16:50] wxのスポンサーにvmwareがついてるけど、vmwareの GUIもwxで作ってんの?
763 名前:デフォルトの名無しさん mailto:sage [04/04/22 13:02] マルチプラットフォームが流行ると、vmwareが売れると思ってるからでは?
764 名前:デフォルトの名無しさん mailto:age [04/04/30 15:23] age
765 名前:デフォルトの名無しさん mailto:sage [04/04/30 15:28] wxRubyに関するメモ www.infsys.cne.okayama-u.ac.jp/~kagotani/memo/wxruby.html
766 名前:デフォルトの名無しさん mailto:sage [04/05/01 01:37] C++BuilderXに見捨てられたライブラリはこれですか?
767 名前:デフォルトの名無しさん mailto:sage [04/05/01 01:49] 別にBorlandごときに見捨てられたところで痛くもかゆくもないわ。 吉野家みたいに速くて安くて(゜Д゜)ウマーと言われていたのも 遠い昔の話だし。
768 名前:デフォルトの名無しさん mailto:sage [04/05/01 01:50] >>767 目から大粒の汗が流れてるよ。
769 名前:デフォルトの名無しさん mailto:sage [04/05/01 06:34] 某厨って好きな時に都合の良い夢を見られる体質なんですね(微笑
770 名前:デフォルトの名無しさん mailto:sage [04/05/01 18:24] 以下の環境で wxWidget の開発を試してみました。 Windows XP Eclipse 2.1.3 CDT 1.2.1 wxWidget 2.4.2 cppunit 1.8.0 www.h3.dion.ne.jp/~k5_n/wxwin/setup_win.html を参考にウィンドウを出すだけのプログラムはできるようになったのですが、 make(というかgcc)が激遅なのはしょうがないとして、 eclipse の code assist(補完機能)が、 Ctrl+SPC を押してから候補がでるまで10秒程もかかり実用になりません。 こんなもんなんでしょうか? 初めて書き込むんで、板違いだったらすいません。
771 名前:デフォルトの名無しさん [04/05/01 18:32] gccはプリコンパイルヘッダが効かないから遅いんじゃなかったっけ。 最新のバージョンでそれもようやく対応したそうな。 CDTもコード補完出来るようになったんだねー。 俺も使ってみるか。
772 名前:デフォルトの名無しさん mailto:sage [04/05/01 18:36] Ctrl+Spを音楽プレイヤーの再生/一時停止切り替えキーに設定してるわorz
773 名前:770 mailto:sage [04/05/01 22:43] >>771 gcc のバージョン書くの忘れてました。 cygwin を導入したときついてきた gcc 3.3.1 でした。 おっしゃるプレコンパイルヘッダ機能は 3.4 からのようですね。 cygwin の gcc がバージョンアップするのはいつごろですかね? コード補完も CDT がヘッダファイルをあらかじめ見て 情報を集めといてくれれば速くなると思うのですが、 こういう話題は Eclipse のスレになるのでしょうか。
774 名前:デフォルトの名無しさん mailto:sage(・∀・)ノヒョーン [04/05/07 13:05] VC++.NETでサンプルをコンパイルしようとしたんですが dde.hでエラーいっぱいで困ってます。 error C2143: 構文エラー : ';' が '&' の前にありません。 error C2433: 'wxDDEServer::wxList' : 'inline' はデータ宣言をするのに使用できません。 error C2501: 'wxDDEServer::wxList' : 識別名を宣言するのに、型が指定されていません。 error C2146: 構文エラー : ';' が、識別子 'm_connections' の前に必要です。 etc. 解決策知りませんか?
775 名前:774 mailto:sage(・∀・)ノヒョーン [04/05/07 13:40] 自己解決しますた。
776 名前:デフォルトの名無しさん mailto:sage [04/05/07 14:10] 何度も言わせるな。解決策も書いとけー。
777 名前:デフォルトの名無しさん mailto:sage [04/05/07 14:19] >>774-775 新手のいやがらせですか?
778 名前:774 mailto:sage(´・ω・`)ショボーン [04/05/07 20:40] libのコンパイルしてなかっただけ。
779 名前:デフォルトの名無しさん [04/05/08 01:55] www.h3.dion.ne.jp/~k5_n/wxwin/ にあったmenuというサンプルをPlamo Linux 3.3環境下でコンパイルして みましたが、ウインドウタイトルを除いて日本語が文字化けします。 windows以外では日本語使えないのでしょうか? それとも何か設定があるのでしょうか? ちなみに static wxLocale theLocaleObj(wxLANGUAGE_DEFAULT); も入れてみましたが結果は一緒でした。
780 名前:デフォルトの名無しさん mailto:sage [04/05/08 02:14] www.h3.dion.ne.jp/~k5_n/wxwin/setup_linux.html
781 名前:デフォルトの名無しさん mailto:sage [04/05/08 08:41] >>778 その情報で十分だ。 今度初心者が >error C2143: 構文エラー : ';' が '&' の前にありません。 というメッセージを見たときに、「libのコンパイルをすればいい」と分かるじゃないか。
782 名前:デフォルトの名無しさん mailto:sage [04/05/08 09:05] 2.5.1の新機能ってどこに書いてあるの? HPのドキュメント見たけどよくわからん。
783 名前:デフォルトの名無しさん mailto:sage [04/05/08 10:25] >>782 prdownloads.sourceforge.net/wxwindows/changes-2.5.1.txt
784 名前:779 [04/05/08 10:35] 書き忘れてましたが、configureの際setup.h.inの中の wxUSE_WCHAR_Tの値は1に変更した上でなおかつ日本語 化けるという話でつ。スマソ。それとwxWindowsは2.4.2です。
785 名前:デフォルトの名無しさん mailto:sage [04/05/08 12:09] >>783 感謝
786 名前:デフォルトの名無しさん [04/05/08 14:57] GTK2.x向けのwxWindows2.4.2での質問です。 wxGLCanvasを使ってクロスプラットフォームの3D appを作ろうとしています。 タブを使うため、wxGLCanvasはtopのwxFrameに付けずにwxNotebookを作成し、 その中にwxGLCanvasを作成しました。Windowsではこれでうまくいくのですが、 GTK版ではwxGLCanvas::OnSize()中でGetSize(&x, &y)とすると、サイズ変更する前の 古いwxGLCanvasサイズが帰ってきます。wxGLCanvasをtopのwxFrameから直接作成した場合は 問題なく動作します。GTK版wxNotebookかwxNotebookSizerの挙動に問題があるのかなと思ったのですが、 どなたかアドバイスお願いいたします。
787 名前:770 mailto:sage [04/05/09 08:02] >>770 自己レス Eclipse 3.0M8 CDT 2.0M8 にしたらコード補完まあまあ速くなりました。 ただ読み込むヘッダファイルが多いためか、 コード補完がタイムアウトしてしまうので、 "Content Assist parsing timeout(in milli seconds)"って項目を 大きくしてやらなければいけないみたいです。
788 名前:デフォルトの名無しさん [04/05/10 05:40] wxWindows(wxWidgets)って軽いんですか?
789 名前:デフォルトの名無しさん mailto:sage [04/05/10 18:34] wxWindowsはその存在を軽んじられていることで有名です。
790 名前:デフォルトの名無しさん [04/05/10 19:21] マルチプラットフォームGUIライブラリで一番メジャーなのって、なんなんだろうね。 GTK、Qt、wxWidgets?
791 名前:デフォルトの名無しさん mailto:sage [04/05/10 19:28] Windows.Formsだろ
792 名前:デフォルトの名無しさん mailto:sage [04/05/10 21:18] >>790 最古のTkはアウトオブ眼中ですか。
793 名前:デフォルトの名無しさん mailto:sage [04/05/11 01:39] >>790 QtのWindows版にもGPL適用できたら間違いなくQtがメジャーになってたのに・・・
794 名前:デフォルトの名無しさん mailto:sage [04/05/11 01:49] LISENCEが全然分からないんですけど、 例えばスタティックリンクした場合、こちらは何をしなければならないのですか? LGPLの場合とwxWindows Library Licenceそれぞれについてお願いします。
795 名前:デフォルトの名無しさん mailto:sage [04/05/11 02:18] >794 ずばり書いてあるよ。 まずライセンスの中身はこれでOK? www.wxwindows.org/newlicen.htm www.wxwindows.org/licence3.txt 大雑把にいうと(ツッコミ歓迎) ・このプログラムはLPGLに従って再配布/修正することができる ・また、例外として、 1. このライセンス保持者が追加であなたに許諾を与える。(使用するかどうかはあなた次第) 2. その例外とは「貴方は自分が望む条件で、このライブラリを元にした成果物の バイナリオブジェクトバージョンを使用、コピー、リンク、修正、出版することができる」 ことである。 3.もしあなたがGPL又はLGPLライセンスのコードをこのライブラリにコピーする場合は、 上記例外はそのコードに当てはまらない。 4. もしあなたが自分自身でこのライブラリを修正した場合、上記例外をその修正箇所に 適用するかどうかはあなた自身が選択できる。 ……と、なる。 >例えばスタティックリンクした場合、こちらは何をしなければならないのですか? >LGPLの場合とwxWindows Library Licenceそれぞれについてお願いします。 LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。 wxWindows Library Licenceに従うなら、例外規定2に従ってバイナリコードのみを配布してもOK
796 名前:デフォルトの名無しさん mailto:sage [04/05/11 02:28] >>795 >LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。 >wxWindows Library Licenceに従うなら、例外規定2に従ってバイナリコードのみを配布してもOK この2行でよく分かりました。ありがとうございました。 #ライセンスを日本語に訳してもらっても、やっぱり意味が分かりませんでした。
797 名前:デフォルトの名無しさん mailto:sage [04/05/11 05:52] 日本語対応はどうなんですか? IMEとか。
798 名前:デフォルトの名無しさん mailto:sage [04/05/12 18:27] よくわからんけど、そのあたりは大丈夫だと思う。 日本語関連で問題が出るのはコンパイラの問題の場合が多いし。 っていうか、VC2003ツールキットでうまくコンパイルできん。 まぁ、情報が流れるのを待つか・・・。
799 名前:デフォルトの名無しさん mailto:sage [04/05/17 17:14] >>798 コンパイルしてみた。 スタティック版は上手くいくよ。 が、DLL版は失敗する。 delayimp.libが無い為リンク出来無い。 何処かから合法的に持って来る方法は無いかな?
800 名前:デフォルトの名無しさん [04/05/20 23:58] bool Get800() { return TRUE; }
801 名前:デフォルトの名無しさん mailto:sage [04/05/22 15:01] >>798 開発版は対応してる模様 wx-cvs-20040521.tar.bz2をビルドしたところ、 スタティック版もDLL版も問題なく成功。 早く次の安定版が出てくれればいいのだが…
802 名前:デフォルトの名無しさん mailto:sage [04/05/25 05:49] Doxygenかましたらまともなドキュメントになるのになー
803 名前:デフォルトの名無しさん mailto:sage [04/05/25 07:39] あー、嘘嘘。やってみたけど見にくいわ。 defs.hが痛過ぎる。全部まとめちゃってるから各クラスの解説に定数が出てこねー。ダメダコリャ。 でもメソッド一覧はやっぱりDoxygenの出力使えるといいなあ。 ちゃんとwxApp::MainLoopはvirtualって出るし。それに wxWindow::SetSize(const wxRect &rect) って実はサイズフラグも取れるって知ってた? ドキュメントでは↑だけど、本当は↓これ。 wxWindow::SetSize(const wxRect &rect, int sizeFlags=wxSIZE_AUTO) Doxygenしてみて初めて気付いた。 ドキュメントとソースを行ったり来たりするのは面土居sage
804 名前:デフォルトの名無しさん mailto:sage [04/05/25 12:57] wxWindowsで作られた有名ソフトって何ですか?
805 名前:デフォルトの名無しさん mailto:sage [04/05/25 13:08] www.wxwindows.org/apps2.htm
806 名前:デフォルトの名無しさん mailto:sage [04/05/26 03:36] >>799 DELAY_LOAD=delayimp.lib \ /delayload:ws2_32.dll /delayload:advapi32.dll /delayload:user32.dll \ /delayload:gdi32.dll \ /delayload:comdlg32.dll /delayload:shell32.dll /delayload:comctl32.dll \ /delayload:ole32.dll \ /delayload:oleaut32.dll /delayload:rpcrt4.dll $(GL_LIBS_DELAY) を6行まとめて次の1行に置換 DELAY_LOAD= これは、dll の遅延ロード用の設定で、 delayimp.lib は、遅延ロード用のヘルパーライブラリだと思うので、問題ないはず。 ちなみに、Visual C++ Toolkit 2003 は、 ランタイムライブラリ dll 用の lib が無いので includeディレクトリに有る use_ansi.h を下記のように変更した //#pragma comment(lib,"msvcprtd") #pragma comment(lib,"libcpmt") #else// _DEBUG //#pragma comment(lib,"msvcprt") #pragma comment(lib,"libcpmt") #endif// _DEBUG #else// _DLL && !STATIC_CPPLIB #ifdef _DEBUG //#pragma comment(lib,"libcpmtd") #pragma comment(lib,"libcpmt") さらに、debug 用の static ライブラリも無いので変更 これで出来ました。
807 名前:デフォルトの名無しさん [04/05/26 13:57] 今日使い始めたわけなんですけど、 windowsでいうとこのSetWindowRgnって、どうやったら実現できるかなぁ? 教えてくださいませ、詳しい人!
808 名前:807 [04/05/26 15:50] wxFRAME_SHAPED セットした wxFrameに wxString name("hoge.bmp"); wxBitmap bitmap( name, wxBITMAP_TYPE_BMP ); wxColour color( 0,0,0); wxRegion rgn(bitmap, color ); frame->SetShape( rgn ); とか、こんな感じでできるけど、リージョンをウインドウの形にできるけど wxMDIChildFrameだと、うまくいかない。無理ってことかねぇ。
809 名前:デフォルトの名無しさん [04/05/26 18:32] LinuxでwxGTK-2.4.2.tar.gzのコンパイルの際、日本語を使用可能にしよう と思った場合、configureオプションに--enable-unicodeを指定するべきな んでしょうか? --enable-unicodeを指定しなくても、setup.hには #define wxUSE_WCHAR_T 1 となっているので、指定する必要はないんでしょうか? ちなみに--enable-unicodeを指定して出来たライブラリを使って、Webから 拾ってきたとあるプログラムをコンパイルしようとするとwxStringがambiguous なんちゃらエラーになってしまいます。
810 名前:デフォルトの名無しさん mailto:sage [04/05/26 20:05] www.watch.impress.co.jp/game/docs/20040520/ue12.htm GameWatchのUnrealのページにこんなスクリーンショットがあったんですが、 wxMaterialEditorってwxWindowsと関係あるんですか?
811 名前:デフォルトの名無しさん mailto:sage [04/05/27 14:31] >>806 サンクス。 ランタイムライブラリのlibは、自分はimpdefを使って作成しました。 msvcp71d.dllやmsvcr71d.dllはネットに落ちてたのを拾って使ってるんだけど、 ライセンス的に平気かな?
812 名前:デフォルトの名無しさん mailto:sage [04/05/27 14:41] ttp://cvs.osafoundation.org/index.cgi/internal/launchers/win/libs/ とか…
813 名前:デフォルトの名無しさん mailto:sage [04/06/04 17:50] >>804 VLC media player www.videolan.org/vlc/
814 名前:デフォルトの名無しさん mailto:age [04/06/19 11:17] 保守age
815 名前:デフォルトの名無しさん [04/06/24 19:33] Borland C++ BuilderX に preview 載せて、 wxWindows をいじり始めました。 preview の出来は今1歩、いや2〜3歩か。 正式版に期待するかな。 xml パーサが日本語を通さないのが、残念なり。
816 名前:デフォルトの名無しさん mailto:sage [04/06/24 19:59] >>815 UTF-8でASCII以外がだめなの? ダメすぎ
817 名前:デフォルトの名無しさん [04/06/28 19:38] wxWindowsのポーティング説明サイトキボン。 それも日本語サイト
818 名前:デフォルトの名無しさん mailto:sage [04/06/28 19:57] >>817 を日本語に翻訳してくれるサイトキボン それも日本語サイト
819 名前:デフォルトの名無しさん mailto:sage [04/06/29 07:11] wxWidgets
820 名前:wxで行くべし mailto:sage [04/07/02 14:05] イベントハンドリングに関する質問です 現在付箋ソフト開発中で、付箋ウィンドウを作ってます。 付箋ウィンドウはwxTextCtrl on wxPanel on wxFrame(wxRESIZE_BORDER)で作りました。 ここで問題です。 このウィンドウのクライアント領域をドラッグして移動できるようにしたいのですが、 wxTextCtrlへのイベントを横取りしてwxFrameで取得するにはどうすればいいでしょうか? 試したのは 1)wxTextCtrl派生クラス作ってOnMouseEvent()でイベント受け取る。 受け取れるけど、イベントをwxFrameに横流しするにはどうすれば? 2)wxEvtHandler派生クラス作ってwxTextCtrlにSetEvtHandler()する。 wxEvtHandlerのProcessEvent()をオーバーライドしたら一見うまくいった様に見えたが、 ウィンドウを閉じると「不正な処理」でエラー こんな具合ですが、正統な方法があったら情報きぼんぬ
821 名前:デフォルトの名無しさん mailto:sage [04/07/02 14:29] >>820 wxTextCtrlのイベントハンドラから、 wxFrameのインスタンスにはアクセスできない造り?
822 名前:デフォルトの名無しさん mailto:sage [04/07/02 14:29] wxのイベントモデルから言えば2じゃないかな。 ウィンドウを閉じると「不正な処理」というのは回避できそうな気がする。
823 名前:デフォルトの名無しさん mailto:sage [04/07/02 15:25] >>820 wxMouseEvent : public wxEventだから親へ伝播しないわな。 >>821 の言う通りなんだったら自分で伝播させんとな。 src/common/event.cpp:884〜の bool wxEvtHandler::ProcessEvent(wxEvent& event) は参考にならんかい? ちなみに2.5だったらこっち wxEvtHandler::ProcessEventIfMatches(const wxEventTableEntryBase& entry, wxEvtHandler *handler, wxEvent& event);
824 名前:デフォルトの名無しさん mailto:sage [04/07/02 22:47] wxWidget用のRADとかないの? Eclipseでそういうのあったら最強くさいんだが
825 名前:デフォルトの名無しさん mailto:sage [04/07/03 01:21] 820です。 >>821-823 レスさんきゅう。 現在1)の方法を試してます。 wxTextCtrl派生クラスのOnMouseEvent()で GetParent()->GetParent()->AddPendingEvent(event) ってやったら問題解消。いまのところはこの方法でいこうかね。 >>824 RADとまで言えるかわからないけど、wxDesignerとかDialogBlocksという、 商用のダイアログエディタならあるよ。 wxDesigner www.roebling.de/ DialogBlocks www.anthemion.co.uk/dialogblocks/
826 名前:wxでいきませう mailto:sage [04/07/03 15:32] またまた820です。今度は別の問題へるぷみー 付箋ウィンドウ(wxFrame派生クラス)のスタイルをwxRESIZE_BORDERにすると、 wxTextCtrlが描画されない問題あり。 描画されたウィンドウをマウスでリサイズすれば描画されます。 でも表示直後に描画されないのです。 ※スタイルをwxDEFAULT_FRAME_STYLEにすれば最初から描画されます。 子ウィンドウのwxTextCtrlに対してRefreshとかEnableとかSetSizeとか やってみましたが、解決に至らず。 どうしよう?
827 名前:wxでいきませう mailto:sage [04/07/03 16:04] 820です。 自解しました。 付箋ウィンドウ(wxFrame派生クラス)のShow()をオーバーライドして その中でSendSizeEvent()してやったら描画されました。 なんか、質問すると解決する。そんなもんですかね。 P.S. wxWidgetsって使いやすい。サンプルも豊富でドキュメントもしっかりしてて。 MFCよりずっといいね。って今は.NETの時代?
828 名前:デフォルトの名無しさん mailto:sage [04/07/03 16:36] >>827 wxMSWだとpublic wxWindowなオブジェクトのSizeEventは 最初に表示(Show)された時ではなく、生成された時(Create)に発生する。 だからMyApp::OnInit()でnew,Showする順番が重要。
829 名前:デフォルトの名無しさん mailto:sage [04/07/04 02:23] > なんか、質問すると解決する。そんなもんですかね。 そんなもん。というより 1.質問を書く 2.どういう返事になるか想定する(○○はどうなってる?) 3.出す前に調べる 4.さらなる突っ込みを想定しつつ1or2へ戻る。 というプロセスを繰り返すと大抵の質問は出す前に解決してしまうよね。
830 名前:デフォルトの名無しさん mailto:sage [04/07/07 21:57] >> 809 私は FreeBSD-5.2.1 ユーザですが,misc2.cpp の JoyStick::GetProductName() の デフォルト値 「(const char) ""」を wxString にキャストできないのが 原因で ambiguous うんたらエラーになっていました,該当部分を wxString("", strlen(""))に置き換えてコンパイルしたら通りました. 試してみてください.