CRichEditCtrl の使用
ダイアログでCRichEditCtrlを使用する場合,InitInstanceなど,ダイアログ表示前にAfxInitRichEdit を呼び出す必要あり(これがないとダイアログが表示されない)
http://msdn.microsoft.com/ja-jp/library/76a787xf(VS.80).aspx
BOOL CXxxxApp::InitInstance()
{
AfxEnableControlContainer();
AfxInitRichEdit() ;
…
}
VC7 以降は AfxInitRichEdit2
http://msdn.microsoft.com/ja-jp/library/tt1cfb9f(v=VS.80).aspx
WinCtrl4.cpp より
BOOL PASCAL AfxInitRichEdit()
{
_AFX_RICHEDIT_STATE* pState = _afxRichEditState;
if (pState->m_hInstRichEdit == NULL)
pState->m_hInstRichEdit = AfxCtxLoadLibraryW(L”RICHED32.DLL“);
return pState->m_hInstRichEdit != NULL;
}
BOOL PASCAL AfxInitRichEdit2()
{
_AFX_RICHEDIT_STATE* pState = _afxRichEditState;
if (pState->m_hInstRichEdit2 == NULL)
pState->m_hInstRichEdit2 = AfxCtxLoadLibraryW(L”RICHED20.DLL“);
return pState->m_hInstRichEdit2 != NULL;
}
RC 内のコントロールのクラス名 RichEdit20A , RichEdit20W
http://support.microsoft.com/kb/261171
VC6 UNICODE exe で,CRichEditCtrl から DDX で文字列を取得すると正しく取れない.
例えば”㎡㎥m” が “㎡?m” になってしまう.
RC のクラス名を “RICHEDIT” から “RichEdit20W” に変更して正しく取れる様になった.
”RichEdit20A” では,変わらず.
選択項目の変更の通知にはEN_SEL_CHANGEなど
これを使用する場合,OnInitDialogなどで,以下の様な呼び出しでの設定が必要.
long em = m_CtrlRichEdit.GetEventMask() ;
m_CtrlRichEdit.SetEventMask(em|ENM_SELCHANGE) ;
http://msdn.microsoft.com/ja-jp/library/bb774366.aspx
以下の様な方法で,FaceNameを使用可能
CHARFORMAT cf ;
::ZeroMemory(&cf,sizeof(CHARFORMAT)) ;
cf.cbSize = sizeof(CHARFORMAT) ;
m_CtrlRichEdit.GetSelectionCharFormat(cf) ;
… = cf.szFaceName ;
保存
http://msdn.microsoft.com/ja-jp/library/b0k0ywek(v=VS.80).aspx
GetGlyphOutline
Ask Dr. GUI #55
私のハートはいつもあなたに TrueType
http://msdn.microsoft.com/ja-jp/library/cc440969.aspx
Q243285: HOWTO: “Draw TrueType Glyph Outlines”
(http://support.microsoft.com/support/kb/articles/Q243/2/85.asp)
Q87115: HOWTO: “GetGlyphOutline() Native Buffer Format”
(http://support.microsoft.com/support/kb/articles/Q87/1/15.asp)
BrowseFile でファイル名を指定
Debug\EnvMove\RegExp\RegExpDg.cpp より
CString filter = _T(“登録ファイル (*.reg)|*.reg|All Files (*.*)|*.*||”) ;
BrowseFile bf ;
bf.SetFilter(filter) ;
bf.SetDialogIsSave() ;
bf.SetInitialFolder(comDoc) ;
bf.SetFileName(outFile) ;
bf.SetFileName(::FolderAddLastSP(comDoc)+::GetFileName(outFile)) ;
if (bf.Browse()) {
outFile = bf.GetSelectFile() ;
}
Remote Desktop Mobile を追加
MS_RDP_v6.5.cab
http://forum.xda-developers.com/showthread.php?p=3592033
http://forum.xda-developers.com/attachment.php?attachmentid=174226&d=1239213874
X02T にインストール.
コンピュータ名ではうまく接続できなかった.
IP アドレスによる指定では接続可能.
Envy100 を追加
無線 LAN 環境に HP ENVY 100 を追加
・暗号化なしでは接続できる.
・WEP では,MAC アドレスのフィルタリングで,はじかれている様なレポート.
MN128-SOHO-IB3 + MN-WLC54g
プリンタドライバのインストールは,ハードが接続されないとインストールが完了できないみたい.
970cxi や 2550 で,よくデバッグに使用した,ドライバでの「プレビュー」はないみたい.
検索したら,以下の情報あり
WEP 暗号化および共有キー認証を使用してワイヤレス ネットワークに接続できない
WM_MOUSE??? ,WM_?BUTTON???
マウス関係のイベントを表示するコードと exe
手元のマウスでは,zDelta は 120
CTH-460 では,16 や 5
VirtualPC 内では統合機能を有効にしないとうまくイベントが上がらない.
以下の様なコードになっていたので,zDelta が 120 より小さい時は効果がなかった.
short zDelta= (short)HIWORD(msg->wParam) ;
int count = abs(zDelta)/120 ;
for (int index=0 ; index<count ; index++) {
if (zDelta < 0) { … }
else { … }
}
zDelta に対して,ある値をかけて 120 で割る様な操作が必要
ViewScrl.cpp より
int nToScroll = ::MulDiv(-zDelta, uWheelScrollLines, WHEEL_DELTA);
short zDelta= (short)HIWORD(msg->wParam) ;
double ratio = … ; // 1.4
ratio = (ratio-1.)*abs(zDelta)/WHEEL_DELTA ;
ratio += 1.0 ;