Win32API質問箱 Build42

952デフォルトの名無しさん:2006/05/19(金) 14:25:47
DrawFrameControlなのですが
ラジオボタンやチェックボックスは、
ボタンの位置やサイズ、テキストの位置は自分で計算するしかないのでしょうか?
953デフォルトの名無しさん:2006/05/19(金) 14:29:10
>>952
DrawFrameControl は現状殆ど使い物にならないからやめた方がいいよ。
本物のコントロールを配置して、手前をWS_EX_TRANSPARENTなウィンドウで
覆っておくのがお勧め(何か上書きしたいならそのウィンドウで)。
954デフォルトの名無しさん:2006/05/19(金) 14:42:22
>>953
やっぱしそうですか・・・。
「ボタンだけならどうにかなるけどチェックボックスとかはどうするのこれ?」って
結構迷いました・・・
というわけど教えてもらった方法を考えてみたいと思います
955デフォルトの名無しさん:2006/05/19(金) 14:44:57
だれだ DrawFrameControl を薦めた香具師は
956デフォルトの名無しさん:2006/05/19(金) 14:46:27
>やっぱしそうですか・・・。
最初から自分で作ればいいんじゃないか
957デフォルトの名無しさん:2006/05/19(金) 14:51:03
>>956
まぁ、そうでしょうけど作るのがしんどいだろうし(自分のレベルじゃ)
できたとしても違うものが出来そうなので・・・
958デフォルトの名無しさん:2006/05/19(金) 19:46:43
埋めようぜ
959埋めようぜ:2006/05/19(金) 20:04:50
乙女座の聖闘士は、
自分の写真と某アニメのロリキャラとの合成プリントシャツ着たキモオタデブ
960デフォルトの名無しさん:2006/05/19(金) 21:12:37
なんでもいいので埋めてください。
961デフォルトの名無しさん:2006/05/19(金) 21:18:56
SuspendThread
962デフォルトの名無しさん:2006/05/19(金) 21:25:06
ExitThread
963デフォルトの名無しさん:2006/05/19(金) 21:25:59
とりあえず>>960を埋めました
         、、、、
       _彡_, ,_ヾ
     /∩|;`"皿`"|) =3
    くヘ | ̄ヽL| |」 ]つ ┐
       |j、__| |_| ┰'’
       |__|_| _||_    (○)
       |__)_) | ∪ |     |/)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ⊂⌒~⊃。Д。)⊃
964デフォルトの名無しさん:2006/05/19(金) 21:26:02
FreeLibraryAndExitThread
965デフォルトの名無しさん:2006/05/19(金) 21:28:47
CreateWindowは存在しない!
966デフォルトの名無しさん:2006/05/19(金) 21:39:52
_onexit( exit_func );

...

int exit_func()
{
967デフォルトの名無しさん:2006/05/19(金) 21:56:57
BUTTONウィンドウの背景色を
灰色じゃない色(例えば、赤)に変えるにはどうしたらいいのでしょうか?
968デフォルトの名無しさん:2006/05/19(金) 22:11:04
2つのPOINT構造体からRECT構造体を返す関数はないでしょうか?
969デフォルトの名無しさん:2006/05/19(金) 22:36:01
>>968
それくらい自分で作れ。
そういえばMFC/ATLのCRectにはPOINTとSIZEを受け取るコンストラクタがあった気がする。
970デフォルトの名無しさん:2006/05/19(金) 22:41:46
>>969
そういう関数が最初からあるんだったら
そちらを使ったほうがいいかなと思ったのでとりあえず・・・
ないのでしたら自作します。
971デフォルトの名無しさん:2006/05/19(金) 22:48:58
RaiseException(
  0
  , dwExceptionFlags //復帰不可能
  , 0, NULL ) ;
972971:2006/05/19(金) 22:51:48
__except(EXCEPTION_EXECUTE_HANDLER) { /*typo*/ }
//素で間違えたOrz
973デフォルトの名無しさん:2006/05/20(土) 02:06:49
いいこと思いついた
お前らこのスレを埋めろ
974デフォルトの名無しさん:2006/05/20(土) 02:10:07
よっし、お前が埋めろ
975デフォルトの名無しさん:2006/05/20(土) 10:32:03
>>968-970
単純にコピーでいいとは限らない訳だがみんなはどうしてる?
976デフォルトの名無しさん:2006/05/20(土) 10:46:30
namespace foo {

class RECT
{
  ::RECT rect ;
public :
  RECT(::POINT left_top, ::POINT right_bottom)
  {
    rect.left = left_top.x ;    rect.top = left_top.y ;
    rect.right = right_bottom.x ;    rect.bottom = right_bottom.y ;
  }

  operator ::RECT() { return rect ; }
} ;

} //namespace foo

うーん、激しく車輪の再発明な気がしないでもない。
977デフォルトの名無しさん:2006/05/20(土) 11:27:35
RECT のポインタを渡して中身を書き換えたときに
元の POINT の中身も換わって欲しかったりすることない?
978デフォルトの名無しさん:2006/05/20(土) 11:35:08
よくわからないが、CRectをコピれば終わらないか?
979デフォルトの名無しさん:2006/05/20(土) 11:46:41
ソースみたけどやっぱりコピってるんだね
980デフォルトの名無しさん:2006/05/20(土) 11:48:43
SetRect
981976:2006/05/20(土) 13:13:28
>>979
いや、そのヘッダは読んでいないけど、誰が書いても同じものになると思う。
982デフォルトの名無しさん:2006/05/20(土) 13:18:18
コピってるっていう意味は元のPOINTの
インスタンスにデータをコピーしてるってことです
983デフォルトの名無しさん:2006/05/20(土) 13:18:54
ごめん文章がおかしくなった

コピってるっていう意味は元のPOINTのデータを
RECTのインスタンスにコピーしてるってことです
984デフォルトの名無しさん:2006/05/20(土) 13:20:50
afxwin1.inl というインライン定義記述用ソースファイルの中に

// CRect
_AFXWIN_INLINE CRect::CRect()
{ /* random filled */ }
_AFXWIN_INLINE CRect::CRect(int l, int t, int r, int b)
{ left = l; top = t; right = r; bottom = b; }
_AFXWIN_INLINE CRect::CRect(const RECT& srcRect)
{ ::CopyRect(this, &srcRect); }
・・・

こういうのが延々と続いていました
985976:2006/05/20(土) 13:48:09
>>982
ここで、POINT構造体のラッパも用意してみる。
処理は全部、全部クラス内に記述する。

RECT rect = foo::RECT(foo:POINT(0, 0), foo::POINT(640, 480)) ;

賢いコンパイラなら、インライン展開したほうが得であると考えて、
インライン展開->さらに最適化->普通のRECT構造体に値を設定した場合と、なんら変わらない処理に。


というかコピーとかいうのは、どういう意味で使っているのだろう。
986976:2006/05/20(土) 13:49:37
あ、POINT構造体とか言っている時点で、そもそも上の例は間違っているか。
普通のRECTなら、

RECT rect = {0, 0, 640, 480} ;

でいいか。
987デフォルトの名無しさん:2006/05/20(土) 16:40:03
MFC使おうよ
988デフォルトの名無しさん:2006/05/20(土) 16:53:20
>>985
わかりにくくてすみません

POINT p1 = { 5, 7 };
POINT p2 = { 13, 31 };

RECT r = hoge(p1, p2);

ここまではみなさんの考えてることと同じなのですが、

r.lefttop.x = 3;

としたときに、もとの

p1.x も 3 になってほしいのです
989デフォルトの名無しさん:2006/05/20(土) 16:59:22
struct HOGE
990デフォルトの名無しさん:2006/05/20(土) 17:01:18
間違えたorz


struct HOGE
{
  POINT lefttop ;
  POINT rightbottom ;
} ;


こんな感じかな。
こんなあほみたいなテクニックを使う、
わかりにくいコードなんて、読みたくないが。
991デフォルトの名無しさん:2006/05/20(土) 17:11:11
それじゃだめでしょ
992デフォルトの名無しさん:2006/05/20(土) 17:15:56
>>991
オーケー>>988を読み直した。
コンストラクタでp1,p2の参照を取って、メンバに保持しておき、
RECTフェイクなクラスが変更されたら、参照も変更する。

ますます読みたくないコードだ。
993デフォルトの名無しさん:2006/05/20(土) 17:26:10
>>978 とか >>980 とか >>987 を無視するあたりどう見ても(ry
994デフォルトの名無しさん:2006/05/20(土) 17:27:46
埋めようよ
995デフォルトの名無しさん:2006/05/20(土) 17:28:25
埋めてしまえ
996デフォルトの名無しさん:2006/05/20(土) 17:30:05
997デフォルトの名無しさん:2006/05/20(土) 17:30:27
もったいないスレの使い方を・・・
998デフォルトの名無しさん:2006/05/20(土) 17:31:26
いいじゃんいままでそうやって埋めてきたんだし
999デフォルトの名無しさん:2006/05/20(土) 17:31:45
1000だったらVistaで新API UninstallWindowsVista導入
1000デフォルトの名無しさん:2006/05/20(土) 17:32:27
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。