ホントにこれでいいのか疑問なコード

in

CEditBoxの幅を入力可能な文字数にあわせるとか、エディットボックス自体を右揃えにするなんてことは誰でも考えることだろうけど、皆どう実装しているんだろうか?僕は、

// Create Controll Font
m_ctrl_font.CreatePointFontIndirect(&logfont,pDC);
// Label A
tmpstr      = "LABEL A";
GetTextExtentPoint32(pDC->m_hDC,tmpstr.c_str(),tmpstr.length(),&textSize);
rect.top    = 20;
rect.left   = 20;
rect.bottom = rect.top  + (tm.tmExternalLeading + tm.tmHeight);
rect.right  = rect.left + textSize.cx;
CStatic* l = new CStatic;
l->Create(tmpstr.c_str(),SS_LEFT|WS_VISIBLE|WS_CHILD,rect,this);
l->SetFont(&m_ctrl_font);
// Edit A
int edge_w = GetSystemMetrics(SM_CXEDGE);
GetTextExtentPoint32(pDC->m_hDC,_T("1234567890"),10,&textSize);
rect.left   = rect.right + tm.tmMaxCharWidth;
edit_a_right = rect.right  = rect.left  + textSize.cx + (edge_w * 2);
CEdit* e = new CEdit;
e->CreateEx(WS_EX_STATICEDGE,_T("EDit"),"",
  ES_LEFT|WS_CHILD|WS_VISIBLE|WS_TABSTOP,rect,this,WM_USER+1);
e->SetFont(&m_ctrl_font);

みたいなコード(全ソース)を書いたりしていたのだけれどこれってかなり面倒。リソースエディタでペタペタ貼り付けて適当な大きさに並べておいてOnSize()あたりで幅を調整するのもありかと思うけどそれでも面倒な事は同じですよね?結局、コントロールの数だけ上記のようなコードをゴリゴリ書くわけです。

小雨舞うGWの真っ直中ひとけのないオフィスでこんな冴えないコードを書いていたら

「ホントにこんなやり方でいいのかなぁ?」

なんて、しみじみ。

特に支障もないものだからずっと使っているけど全然イケてないコードはたくさんあるのだろうなぁ。誰か添削してくださいな....

スクリーンショット

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/312

Comments