ホーム » 2010 » 8月

月別アーカイブ: 8月 2010

2010年8月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 99,342 アクセス


CChildFrame を最大化して表示

MDI の新規ウィンドウで ChildFrame を最大化して表示

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
  cs.style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION 
             | WS_SYSMENU     | FWS_ADDTOTITLE | WS_THICKFRAME 
             | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;
  if( !CMDIChildWnd::PreCreateWindow(cs) ) {
    return FALSE;
    }
  return TRUE;
  }
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

分割ウィンドウ CSplitterWnd

MDI 分割ウィンドウ
ChildFrm.cpp 内の CChildFrame::OnCreateClient で分割数などを指定している.

SDI は,CMainFrame::OnCreateClient 


静的分割ウィンドウ
OnCreateClient 内のコードを書き換える.
/* // コメント部分はスケルトンで生成されたもの
  return m_wndSplitter.Create( this,
    2, 2,         // TODO: 行と列の数を調整してください。
    CSize( 10, 10 ),  // TODO: 最小の区画サイズを調整してください。
    pContext );
*/

  if (!m_wndSplitter.CreateStatic(this,1,2)) {
    return FALSE ;
    }
  if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeft_View), CSize(150, 100), pContext) ||
    !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, 100), pContext)) {
    m_wndSplitter.DestroyWindow();     // この部分は,どこに書かれていたか不明
    return FALSE;
    }
  return TRUE ;

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

CString で保存される形式

BOM — U+FEFF

UNICODE  FF FE FF  04  32 00  30 00  31 00  30 00 
MBCS    04 32 30 31 30


//  VC98\MFC\SRC\ArcCore.cpp

// CString serialization code
// String format:
//  UNICODE strings are always prefixed by 0xff, 0xfffe
//  if < 0xff chars: len:BYTE, TCHAR chars
//  if >= 0xff characters: 0xff, len:WORD, TCHAR chars
//  if >= 0xfffe characters: 0xff, 0xffff, len:DWORD, TCHARs

CArchive& AFXAPI operator<<(CArchive& ar, const CString& string)
{
  // special signature to recognize unicode strings
  #ifdef _UNICODE
   ar << (BYTE)0xff;
   ar << (WORD)0xfffe;

  #endif
  if (string.GetData()->nDataLength < 255) {
   ar << (BYTE)string.GetData()->nDataLength;
   }
  else if (string.GetData()->nDataLength < 0xfffe) {
   ar << (BYTE)0xff;
   ar << (WORD)string.GetData()->nDataLength;
   }
  else {
   ar << (BYTE)0xff;
   ar << (WORD)0xffff;
   ar << (DWORD)string.GetData()->nDataLength;
   }
  ar.Write(string.m_pchData, string.GetData()->nDataLength*sizeof(TCHAR));
  return ar;
  }

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

X02T Bluetooth Profile

HSP Headset Profile デバイスとBluetooth 対応ヘッドセットとの通信に使用する。
HFP Hands-Free Profile ハンズフリーデバイスで発呼および着呼する。
SPP Serial Port Protocol 2 台の Bluetooth 対応デバイスを接続する。
A2DP Advanced Audio Distribution Profile ステレオ品質のオーディオをメディア ソースからストリーミングする。
AVRCP Audio/Video Remote Control Profile TVやハイファイ設備、その他のデバイスを制御する(リモコンのような役割)。
HID Human Interface Device キーボードやマウス、ゲームデバイスなどに使用する。
OPP Object Push Profile 携帯電話間、または携帯電話と PC 間での連絡先やスケジュール、名刺データの交換などに使用する。

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

PSAPI

他のプロセスのメモリの使用状況などを求める.
EnumProcesses
EnumProcessModules
GetModuleFileNameEx

http://cid-535f5973454c1292.office.live.com/self.aspx/.Public/MFC/PStatus.hxx.txt

プロセスID から,HWND を求める.
 DWORD pid =  processID ;
 EnumWin ew ;
 INT_PTR wCount = ew.GetCount() ;
 for (INT_PTR wIndex=0 ; wIndex<wCount ; wIndex++) {
  HWND hwnd = ew.GetWinHandle(wIndex) ;
  DWORD wpid = 0 ;
  GetWindowThreadProcessId(hwnd,&wpid) ;
  if (pid == wpid) {
   …
   break ;
   }
  }

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.