2012年3月23日金曜日

C言語で文字列操作

C言語 文字列操作

uchar ucBuf[10];

に"あいう"

とかの文字列を場合は?

strcpy(ucBuf, “あいう”);

いじょー。

 

2012年3月5日月曜日

スコープ演算子



VCを使っている場合、
スコープ演算子には2種類ある~。

①クラス名::メソッド名の場合
 →MFCのクラス内?ちゅうのかな?にある、メンバ関数を呼び出す。
②::メソッド名の場合
 →Win32APIの関数を呼び出す。

MessageBoxってあるけど、これを使うのには頭に何も使わなくてもいい。
でもこれで呼び出されるのはCWndMessageBoxになる。

::MessageBoxと書くと、Win32APIMessageBoxになる。


うんそだね。(゚д゚)(。_。)

2012年2月28日火曜日

MFCでDialogの透明化



ディスプレイサイズのダイアログを作成して、
その上をBMPが動くものを作っていたんだけど。

デバッグがやりにくかったので一時的にダイアログを
透明化したくてコードを追加しました・∀・



処理の流れ

  1. ダイアログに赤色が使われるところを透明にする設定をする。
  2. ダイアログを表示時に赤色で全部塗りつぶす。
  3. ダイアログを表示時、全面赤色に塗りつぶされたダイアログは透明になる。



xxxDialog.hの中で以下追加 
CBrush m_brDlg; ← ダイアログの背景色ブラシ


CxxxDialog::OnInitDialogの中で以下追加

// ウィンドウの拡張スタイルを変更
ModifyStyleEx(0, WS_EX_LAYERED); 

// レイヤードウィンドウの不透明度と透明のカラーキ
SetLayeredWindowAttributes(RGB(255 , 0 , 0), 0, LWA_COLORKEY);

// 赤色のブラシを作成する.
m_brDlg.CreateSolidBrush(RGB(255,0,0));


// WM_CTLCOLORのメッセージ関数をオーバーライド
HBRUSH  CxxxDialog ::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO:  ここで DC の属性を変更してください。
switch(nCtlColor){
case CTLCOLOR_DLG:        ←ダイアログの背景色
return (HBRUSH) m_brDlg;
default:
break;
}
// TODO:  既定値を使用したくない場合は別のブラシを返します。
return hbr;
}