[過去ログ] Debian GNU/Linux スレッド Ver.93 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
113
(2): 2019/11/18(月)13:46 ID:MW+8+2K1(1/9) AAS
>>98
> 親ウィンドウによる子コントロールのイベントの先取りとか
X Window Systemでもできるよ

根本的な部分から説明するね

Windowsはローカルで動かすためのウィンドウシステムとして作られたので、マウスを動かしたりクリック
したりすると対応するメッセージが対応するウィンドウに常に送られる

だから子ウィンドウに対するメッセージを親ウィンドウで処理したい場合は子ウィンドウがメッセージを
一旦受け取った上で親ウィンドウにさらにSendMesseageで送らなくてはいけない

これに対してX Window Systemはネットワーク上で動かすことを前提にしているため、例えばボタン
ウィジット(ウィンドウ)ならマウスの移動を扱うとその分余計なリソースが消費されてしまうから、
省5
114: 2019/11/18(月)13:50 ID:nizzhszf(1/9) AAS
>>113
処理しないイベントだけ処理できたって意味ねえ
CSpinButtonCtrlから派生したクラスが文字列を全て選択できる様にした上で、
更に基本クラスがフォーカスされた時のイベントを処理、
CSpinButtonCtrlを使うアプリも更にOnSetFocusを処理できなきゃ
恥ずかしくってカスタムコントロールなんて言えないぞ
115
(2): 2019/11/18(月)13:52 ID:MW+8+2K1(2/9) AAS
>>113
つづき

当然子ウィンドウが受け取った上で親ウィンドウにXSentEvent等で送ることもできる
外部リンク[html]:xjman.dsl.gr.jp

基本的に設計当時のPCとUnixワークステーションの性能に大きな差があった関係で、
WindowsよりX Window Systemの方が柔軟な設計になっているから、Windowsでできて
X Window Systemでできないことはないよ

ちなみにWaylandはマウスとキーボード3セットで3人同時に動かすmultiseat機能等
もっと複雑なことができる
116: 2019/11/18(月)13:54 ID:MW+8+2K1(3/9) AAS
>>115
具体的なページを貼りたいのにNGワードに引っかかる

例えば
emboss.ブログ28.エフシー2.コム/ブログ-エントリ-115.html
にあるような処理はWindowsだと子ウィンドウでのメッセージ処理コードが必要だけど
X Window Systemでは、同様に処理してもいいが、子ウィンドウがマウスクリック
イベントを受け取らないようにするだけで実装できるなど
117: 2019/11/18(月)13:58 ID:MW+8+2K1(4/9) AAS
ちなみに実際にXlibで相互にイベントをやり取りする場合はXSentEventより
XTEST ExtensionIの方がもっと柔軟なやりとりができるようになっている
外部リンク[html]:www.x.org
118: 2019/11/18(月)14:01 ID:nizzhszf(2/9) AAS
>>115
その処理順序は?
119
(1): 2019/11/18(月)14:05 ID:nizzhszf(3/9) AAS
てかハンドラの追加はできても基本クラスのハンドラを呼ばない様にして全部自前で処理とかできねえよな
120
(1): 2019/11/18(月)14:16 ID:MW+8+2K1(5/9) AAS
>>119
> てかハンドラの追加はできても基本クラスのハンドラを呼ばない様にして全部自前で処理とかできねえよな
XlibはC
基本クラスとは?
121
(1): 2019/11/18(月)14:29 ID:nizzhszf(4/9) AAS
>>120
全部Cでやるってんなら「基本クラス」を「機能の派生元のコントロール」に置き換えろ

ところで機能の派生元のハンドラを無理やり実行させない方法は今思いついた様な気がする
が、元のコードが終了時に多重開放とかしそうで上手く動くかどうかはわからん

先ずは機能の派生元のコントロールが保持している子コントロールのハンドラと、
機能の派生の為のコードが後から追加したハンドラの処理順序をはっきりさせろ

てかなんでX(Wayland)の上にコモンコントロールの類が無くて
ツールキットの類がそれぞれ自前で実装してるかってったら
WindowsやMacみたいなメッセージキューの類がないからコンポーネント化しづらくって
誰もやりたがらないんじゃねーの?としか思えん
省1
122
(1): 2019/11/18(月)15:05 ID:MW+8+2K1(6/9) AAS
>>121
> 全部Cでやるってんなら「基本クラス」を「機能の派生元のコントロール」に置き換えろ
そもそも対応するものではありません

それと
> 先ずは機能の派生元のコントロールが保持している子コントロールのハンドラと、
そもそもハンドラとは?

ウィンドウハンドラというものはあるが、Win32のメッセージループもXlibのイベントループも
caseで場合分けとして実装するものであって、それをクラスライブラリで抽象化したものが
イベントハンドラだから、Win32 APIやXlibレベルではコントロールが保持するハンドラなんて
存在しないのだが
省6
123
(1): 2019/11/18(月)15:15 ID:nizzhszf(5/9) AAS
>>122
揚げ足取りより先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ

じゃなきゃイベントの先取りも何もあったもんじゃない
124
(1): 2019/11/18(月)15:20 ID:MW+8+2K1(7/9) AAS
>>123
揚げ足取り以前に根本的に用語が正しくないの
何度も言うけどプログラミングしたことあるの?

例えばWin32のメッセージループの最小限のコードの例として
(またうまく貼れない)
外部リンク:wisdom.サクラ.えぬいー.じぇいぴー
/system/winapi/win32/win9.html
だと
ボタンが押された処理はメッセージループの本体の
if (msg.message == WM_LBUTTONUP) break;
省1
125
(1): 2019/11/18(月)15:22 ID:nizzhszf(6/9) AAS
>>124
根本のWndProc()がそうなってるだけでMFCもVCLも.NETも実際にはメッセージ毎に分離してんだろ

それより先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ
126
(1): 2019/11/18(月)15:32 ID:MW+8+2K1(8/9) AAS
>>125
だからメッセージやイベント構造が同等かLinuxの方が上なら
WindowsでできることはLinuxでもできるでしょ

上位のMFCやQtでどう扱えるかはそれぞれのツールキットの実装の
違いであって、WindowsとX Window Systemの違いではない

お前が最初に話したのはWindowsのメッセージの仕組みがLinuxの
方にないということだったのに何でメッセージやイベント処理の根本的な
部分の話をごまかそうとするんだよ

ハンドラとかslotとか呼び方違うけど順番なんてツールキットの実装次第
127
(1): 2019/11/18(月)15:37 ID:nizzhszf(7/9) AAS
>>126
それは単独のウィンドウでできたコントロールでしか通用しない話
コントロールが更に子コントロールを作ってる様な高機能なコントロールの話をしてる

先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ
128: 2019/11/18(月)15:40 ID:MW+8+2K1(9/9) AAS
>>127
要するにWindowsやLinuxのウィンドウシステムの基礎であるWin32のメッセージ
ループもX Window Systemのイベントループも何も知らないのね

何にも知らないのにLinuxにいちゃもんつけただけ

やっぱり>>71で言ったように何も役立たない会話でした
129: 2019/11/18(月)15:41 ID:nizzhszf(8/9) AAS
親ウィンドウによるイベントの先取りの話に対して
> 当然子ウィンドウが受け取った上で親ウィンドウにXSentEvent等で送ることもできる
(先取りとは言っていない)

これを必死に流そうとしてるだけだろ
130: 2019/11/18(月)17:50 ID:0rp48Fj0(1/2) AAS
内容は何となくしか分からないけど、2人の主張するテーマとここまで熱くなった理由だけはよく分かった
簡単にスレチとは言い切れないし激論も止む無し
131: 2019/11/18(月)17:58 ID:KjuN22W3(1) AAS
面白いからもっとやってくれ

片方がWindowsのMS謹製ツールしか知らないのは良くわかるぞ
132: 2019/11/18(月)18:08 ID:0rp48Fj0(2/2) AAS
読みたくない人は専ブラの機能でミュート出来るしね
俺はめっちゃ読みたい
1-
あと 870 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s