source: dev/trunk/ab5.0/abdev/abdev/TextEditor_ImeEvent.cpp@ 681

Last change on this file since 681 was 655, checked in by dai_9181, 16 years ago

FileManager周りをリファクタリング

File size: 2.0 KB
RevLine 
[475]1#include "stdafx.h"
2
[3]3#include "common.h"
4
5extern HFONT hFont_TextEdit,hFont_HyperLink_TextEdit;
6extern int font_width,font_height;
7
8void TextEditEvent_IME_StartComposition(HWND hwnd){
9 int WndNum;
10 WndNum=GetWndNum(GetParent(hwnd));
11
12 int iControlTabSpace;
[629]13 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace;
[3]14
15 HIMC hIMC;
16 hIMC=ImmGetContext(hwnd);
17
18 //コンポジションをセット
19 POINT pos;
20 COMPOSITIONFORM CompForm;
21 CompForm.dwStyle=CFS_POINT;
[629]22 pos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
[655]23 GetScrollBaseCaretPos(MdiInfo[WndNum],(int *)&pos.x,(int *)&pos.y);
[3]24 CompForm.ptCurrentPos.x=pos.x*font_width+iControlTabSpace;
25 CompForm.ptCurrentPos.y=pos.y*font_height;
26 ImmSetCompositionWindow(hIMC, &CompForm);
27
28 //フォントをセット
29 ImmSetCompositionFont(hIMC,&pobj_nv->lf);
30
31 ImmReleaseContext(hwnd,hIMC);
32}
33
34BOOL TextEditEvent_IME_Composition(HWND hwnd,LPARAM lParam){
35 if(lParam&GCS_RESULTSTR){
36 int WndNum;
37 WndNum=GetWndNum(GetParent(hwnd));
38
39 int iControlTabSpace;
[629]40 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace;
[3]41
42 ////////////////////
43 // 確定文字列を取得
44 ////////////////////
45
46 //コンテキストを取得
47 HIMC hIMC;
48 hIMC=ImmGetContext(hwnd);
49
50 int i;
51 char temporary[4096];
52 i=ImmGetCompositionString(hIMC, GCS_RESULTSTR, temporary,4096);
53 if(i==0) return 0;
54 temporary[i]=0;
55
56 //バッファをリプレイス
57 TextEdit_ReplaceUpdateUndoData(WndNum,temporary,0,1);
58 UpdateWindow(hwnd);
59
60 //コンポジションをセット(立て続けにIME入力が行われる場合を考慮)
61 POINT pos;
62 COMPOSITIONFORM CompForm;
63 CompForm.dwStyle=CFS_POINT;
[629]64 pos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
[655]65 GetScrollBaseCaretPos(MdiInfo[WndNum],(int *)&pos.x,(int *)&pos.y);
[3]66 CompForm.ptCurrentPos.x=pos.x*font_width+iControlTabSpace;
67 CompForm.ptCurrentPos.y=pos.y*font_height;
68 ImmSetCompositionWindow(hIMC, &CompForm);
69
70 //コンテキストを解放
71 ImmReleaseContext(hwnd,hIMC);
72 }
73
74 return 1;
75}
Note: See TracBrowser for help on using the repository browser.