Posted by rCan
Posted by rCan

Posted by rCan
기술 자료: 600742 - 마지막 검토: 2005년 7월 11일 월요일 - 수정: 1.1
프로그래밍적으로 한/영 키 토글 방법
추가 정보
<imm.h>에 함수의 원형과 상수의 정의가, imm32.lib 각 함수의 주소정보가 있으므로 Source에는 <imm.h>를 include하고...<imm.h>에 함수의 원형과 상수의 정의가, imm32.lib 각 함수의 주소정보가 있으므로 Source에는 <imm.h>를 include하고 makefile에는 imm32.lib를 library에 추가한다.
다음의 함수는 ImmSetConversionStatus함수에서 한/영 토글 모드 관련 DWORD fdwConversion 을 fFlag로 넘겨주는 Sample 함수이다.
void Conv_HAN_ENG(HWND hWnd, DWORD fFlag ){
HIMC hIMC; // Input context handle.
if ( !( hIMC = ImmGetContext( hWnd ) ) )
return;
ImmSetConversionStatus( hIMC, fFlag, IME_SMODE_NONE );
ImmReleaseContext( hWnd, hIMC );
}
그리고 다음은 Sample 함수를 부르는 부분이다.
프로그램 메뉴에서 한글 모드를 선택하면, ID_HANGEUL이 영문 모드를 선택하면 ID_ENGLISH가 실행되도록 한 경우이다.
case ID_HANGEUL:
Conv_HAN_ENG(hWnd,IME_CMODE_HANGEUL);
break;
case ID_ENGLISH:
Conv_HAN_ENG(hWnd,IME_CMODE_ALPHANUMERIC);
break;
출처 : MS ( http://support.microsoft.com/kb/600742/ko )
Posted by rCan
Posted by rCan
Posted by rCan
Posted by rCan
Posted by rCan
CompareFileTime
DosDateTimeToFileTime FileTimeToDosDateTime FileTimeToLocalFileTime FileTimeToSystemTime GetFileTime GetLocalTime GetSystemTime GetSystemTimeAdjustment GetSystemTimeAsFileTime GetTickCount GetTimeZoneInformation LocalFileTimeToFileTime SetFileTime SetLocalTime SetSystemTime SetSystemTimeAdjustment SetTimeZoneInformation SystemTimeToFileTime SystemTimeToTzSpecificLocalTime
사용 방법 3. MFC CTime 클래스 사용
CString CurrentTimeText;
CTime CurTime;
CurTime = CTime::GetCurrentTime(); // 현재 시스템 시각을 구한다.
CurrentTimeText.Format( "현재 날짜 / 시각 : %04d-%02d-%02d / %02d:%02d:%02d",
, CurTime.GetYear()
, CurTime.GetMonth()
, CurTime.GetDay()
, CurTime.GetHour()
, CurTime.GetMinute()
, CurTime.GetSecond()
);
사용 방법 4. Millisecond(밀리세컨드) 현재
시간
SYSTEMTIME cur_time;
GetLocalTime(&cur_time);
CString strPCTime;
strPCTime.Format("%04d%02d%02d%02d%02d%02d%03ld",
cur_time.wYear,
cur_time.wMonth,
cur_time.wDay,
cur_time.wHour,
cur_time.wMinute,
cur_time.wSecond,
cur_time.wMilliseconds);
);
사용 방법 5. GetTickCount 활용 방법
SYSTEMTIME cur_time;
어떤 명령어의 수행시간을 측정하고 싶을때가 있다.
이때 유용하게 사용할수 있는 함수가 GetTickCount()이다.
GetTickCount()함수는 시스템이 시작 된 후 얼마의 시간이 경과했는지를 반환한다. 단위는 밀리세컨드 단위이다. 참고로
경과시간은 DWORD(32비트 값)이므로 최대 49.7일이 지나면 다시 0으로 된다고 한다.
The GetTickCount function retrieves the number of milliseconds that have
elapsed since the system was started. It is limited to the resolution
of the system timer. To obtain the system timer resolution, use the
GetSystemTimeAdjustment function.
DWORD GetTickCount(void);
Parameters : This function has no parameters.
Return values : The return value is the number of milliseconds that have
elapsed since the system was started.
#include
#include //GetTickCount()함수 이용을 위해 추가한다.
using namespace std;
void main()
{
long startTime = GetTickCount(); //현재 시각을 저장한다.(시작지점)
for(int i=0; i<100000; i++) //시간 딜레이를 주기 위해 i값을 출력한다.
cout<<
long endTime = GetTickCount(); //현재 시각을 저장한다.(종료지점)
long tickDiff = endTime - startTime; //수행시간 = 종료시각 - 시작시각
long secDiff = tickDiff / 1000 ; //이건 초단위로도 나타내기 위한 것.
cout<<"Start Time : "<<<"ms"<
cout<<"End Time : "<<<"ms"<
cout<<"Tick difference : "<<<"ms"<
cout<<"Second difference : "<<<"s"<
}
Posted by rCan
Posted by rCan
1. CString to char *
ANSI 표준 함수인 strcpy 함수를 사용하여 변환한다.
ex)
CString strTemp;
char buffer[MAX_PATH];
//strcpy(buffer, (LPSTR)(LPCSTR)strTemp);
strcpy(buffer, strTemp.GetBuffer(strTemp.GetLength());
strTemp.ReleaseBuffer();
2. char * to CString
Type casting 을 통해 간단하게 사용한다.
ex)
CString strTemp;
char buffer[MAX_PATH];
strTemp=(LPSTR)buffer;
// (LPSTR)은 char *을 CString 형태로 변환한다.
Posted by rCan
- rCan
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 |