ここで特別なチュートリアルは必要ありません。最も基本的なGUIのコアは、ウィンドウ、ボタン、画像、テキストボックスなどを表す長方形のオブジェクトのリストを管理することから成っています。
そのようなすべての長方形のオブジェクトは、x座標とy座標と幅)。また、その下にあるオブジェクト(zが小さい)とその上にあるオブジェクト(zが大きい)を示すz(深度)座標もあります。
すべての長方形オブジェクトには、その親とその子へのポインタもあります。これにより、より小さく簡単な矩形の任意の複雑なウィンドウを簡単に作成することができます。オブジェクト。たとえば、ウィンドウをつかんで移動するときに、これらの親/子ポインタを使用すると、すべてのオブジェクトを移動できます。また、外側のオブジェクトがイベントを受け取った場合は、それを内側の子に転送して処理することができます。
一部のオブジェクトが部分的または完全に他のオブジェクトによって隠されている場合、最も重要なことは、すべてのオブジェクトが表示されているかどうかを調べ、多くの不必要な作業をしたい。オブジェクトを効率的に描画するには、すべてのピクセルを最大で1回(常にまたはほとんどの時間)描画します。必要な四角形の交差/細分化コードに加えて、これはすべてのオブジェクトがそれ自身の任意の長方形部分を効率的に描画する方法を知っていることを示唆しています。これは、単色オブジェクトでは最も簡単です。画像の場合は、多少なりとも単純です(画像の拡大縮小と色の縮小/変換をしたい場合を除いて)。テキストやベクトルオブジェクトの場合、最も難しいです。
小さな四角いオブジェクトからマウスポインタオブジェクトを構成し、他のすべてのオブジェクトと同じコードで描画して再描画することもできます。ポインタのz(深度)座標が、ポインタが常に他のすべてのオブジェクトの上にくるようにしてください。
これは一般的な考えです。
@vines:それは無礼です、アマチュアの開発者はOSを作ることができます、誰もが学ぶためにリソースが必要です – CharlesB
@CharlesB:私はこれを見つける前に躊躇しました:http://stackoverflow.com/questions/8964440/operating-mouse-driver私はまた、より単純なものから始めるアドバイスを考えましたが、それはさらに残酷に聞こえ、誰にも怒らせるつもりはありません。 – vines