본문 바로가기
반응형

분류 전체보기778

[Cursor] 작업동안 사용자 배려 대기 커서 보이기 개요.. 이미지 로딩, 복잡한 알고리즘 계산과 같은 오랜 시간이 걸리는 작업을 할 경우 유저는 입력작업을 하지 못하고 잠시 기다려야 할 경우가 있습니다. 그러한 경우 대기 커서(Wait Cursor) 모래시계 로 커서가 바뀌면 사용자는 프로그램이 오류가 발생한 것이 아니고 프로그램이 작업 중이니 기다려야한다는 것을 인지하고 참고 기다려줄 것입니다. "몇 초 정도 기다리면 어때" 라고 생각하시는 분도 많지만 조금 더 유저에게 배려를 한다면 더 좋은 프로그램을 만드실 수 있으리라 생각됩니다. 코드 : (MFC App 시스템에서 정상 작동됩니다.) 방법1: { BeginWaitCursor(); Sleep(3000); // 아주오래걸리는일 EndWaitCursor(); } 방법2: { CWaitCursor wc.. 2011. 3. 27.
[IP] 자신의 IP 얻어오기 다수의 아이피(IP)를 가지고 있는 경우 자신의 아이피(IP) 주소 목록을 얻는 프로그램입니다. 아래와 같이 winsock의 gethostname(), gethostbyname()을 이용하면 아이피 목록을 쉽게 알아낼 수 있습니다. 핵심코드:코드 참고 : http://www.debuglab.com/knowledge/getip.html void GetMyIPArray( CArray& raIP ) { WSADATA WsaData; if( WSAStartup( 0x202, &WsaData ) == SOCKET_ERROR ) return; char name[256]; PHOSTENT pHostInfo; struct sockaddr_in addr; // 자신의 호스트이름 얻기.. 2011. 3. 27.
툴바 짧은경로명 길게~ MFC 프로그래밍에서 이미지 뷰어나 노트 패드와 처럼 탐색기에서 더블클릭으로 실행하는 프로그램은, 매우 긴 경로가 인자로 있다면 '게임~3.dat'와 같이 짧은 경로로 변환이 되어 입력이 됩니다. 이와 같은 단축 경로명이 보기 좋지 않기 때문에 아래와 같이 코드를 수정하면 전체 경로명으로 표현이 됩니다. 코드 BOOL CRSeeApp::InitInstance() { ... ... // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 짧은 주소를 길게 바꾼다. char szLongPathName[1024]; if( GetLongPathName(.. 2011. 3. 27.
[Tip] 특정시간과 날짜에만 실행 개요.. 종종 게임 서버에서는 이벤트나 특정 날짜에만 실행되는 부분을 추가할 일이 생깁니다. 하지만 그 시간에 맞추어서 서버를 업데이트하기도 힘들지요. 그러한 경우 아래 코드를 사용하면 쉽게 해결됩니다. 코드 2005년 10월 1일 0시 0분 0초 ~ 2005년 10월 19일 59분 59초 까지 하는 이벤트의 예... // 날짜 계산 CTime timeCurrent = CTime::GetCurrentTime(); CTime timeStart( 2005, 10, 1, 0, 0, 0 ); CTime timeEnd( 2005, 10, 20, 0, 0, 0 ); // 이벤트 가능 날짜 if( timeCurrent >= timeStart && timeCurrent < timeEnd ) { // 아싸 이벤트~ 추가.. 2011. 3. 27.
[Dialog] 시작시 트레이 아이콘으로 시작 프로그램이 최초 실행 시 트레이에서 실행되는 메신저 프로그램처럼, 창으로 뜨지 않고 시작하는 프로그래밍 방법을 설명합니다. 핵심.. 화면에 보이지 않는 모달리스 다이알로그(Modaless Dialog)로 개발합니다. 사용방법.. 0. 헤더에 선언한다. CNorazoClientLauncherDlg* m_pDlg; 1. 다이알로그를 모달리스윈도우로 생성한다. BOOL CNorazoClientLauncherApp::InitInstance() { ... ... m_pDlg = new CNorazoClientLauncherDlg; m_pDlg->Create( CNorazoClientLauncherDlg::IDD ); m_pDlg->ShowWindow( SW_HIDE ); m_pMainWnd = m_pDlg; re.. 2011. 3. 27.
[Tip] 작업표시줄 알리미 게임을 실행시키고 인터넷을 하거나 다른 작업중인 상태에서 다른 사람이 입장하거나, 게임 시작 하는 경우, 작업바( Task Bar ) 가 깜빡( Flash ) 거리면서 사용자에게 알려주면 효과적입니다. 그것을 구현 하고 테스트 하는 프로그램을 만들어 보았습니다. // 일정시간마다윈도우를깜빡거린다. void CFlashTestDlg::OnTimer(UINT nIDEvent) { // 일정시간마다윈도우를깜빡거린다. if( nIDEvent == TIME_ID_FLASH_WINDOW ) { FlashWindow( TRUE ); } // 3초후에액티브상태가아니면깜빡인다. else if( nIDEvent == TIME_ID_3SEC_FLASH_WINDOW ) { KillTimer( TIME_ID_3SEC_FLASH.. 2011. 3. 27.
반응형