맞춰보십시다.
큐브 3x3x3 해법
2009. 2. 4. 11:05
맞춰보십시다.
다중모니터 해상도 변경
2009. 1. 16. 17:23
void MyChangeDisplaySettings()
{
DISPLAY_DEVICE dd;
DEVMODE dm;
int nDev = 2;
DWORD dwWidth[2] = {640, 640}; //첫번째 모니터는 1024*768로 만들고
DWORD dwHeight[2] = {480, 480}; //두번째 모니터는 800*600으로 만든다면....
for(int i=0; i < nDev; i++) {
//EnumDisplayDevices 함수를 이용하여 디스플레이 디바이스를 찾아야 합니다.
memset(&dd, 0, sizeof(DISPLAY_DEVICE));
dd.cb = sizeof(DISPLAY_DEVICE);
EnumDisplayDevices(NULL, i, &dd, 0); //i번째 모니터의 이름을 받아올 수 있습니다.
memset(&dm, 0, sizeof(DEVMODE));
dm.dmSize = sizeof(DEVMODE);
dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
dm.dmPelsWidth = dwWidth[i];
dm.dmPelsHeight = dwHeight[i];
if (ChangeDisplaySettingsEx((char*)dd.DeviceName, &dm, NULL, CDS_TEST, NULL) == DISP_CHANGE_SUCCESSFUL)
ChangeDisplaySettingsEx((char*)dd.DeviceName, &dm, NULL, CDS_FULLSCREEN, NULL);
}
}
Explorer.exe 오류발생시 트레이아이콘 다시 보이게 하기
2008. 11. 27. 15:03
Explorer.exe 가 오류가 발생하여 다시 시작됐을때, 트레이아이콘이 사라지게 된다.
이 문제를 해결하기 위해서는 다시 시작됐을때 메세지를 받아서 처리하면 된다.
h 파일에 함수를 하나 추가한다.
// 메세지 처리 함수
void OnTrayShow(WPARAM wParam, LPARAM lParam);
cpp 파일에 아래의 내용을 추가한다.
// 전역변수 추가
UINT g_uShellRestart = RegisterWindowMessage(__TEXT("TaskbarCreated"));
// 메세지 맵 추가
ON_REGISTERED_MESSAGE(g_uShellRestart, OnTrayShow)
// 메세지 처리
void CTrayTestDlg::OnTrayShow(WPARAM wParam, LPARAM lParam)
{
Shell_NotifyIcon(NIM_ADD, &m_nid/*NOTIFYICONDATA*/);
SendMessage(WM_SETICON, (WPARAM)TRUE, (LPARAM)m_nid.hIcon);
}
이 문제를 해결하기 위해서는 다시 시작됐을때 메세지를 받아서 처리하면 된다.
h 파일에 함수를 하나 추가한다.
// 메세지 처리 함수
void OnTrayShow(WPARAM wParam, LPARAM lParam);
cpp 파일에 아래의 내용을 추가한다.
// 전역변수 추가
UINT g_uShellRestart = RegisterWindowMessage(__TEXT("TaskbarCreated"));
// 메세지 맵 추가
ON_REGISTERED_MESSAGE(g_uShellRestart, OnTrayShow)
// 메세지 처리
void CTrayTestDlg::OnTrayShow(WPARAM wParam, LPARAM lParam)
{
Shell_NotifyIcon(NIM_ADD, &m_nid/*NOTIFYICONDATA*/);
SendMessage(WM_SETICON, (WPARAM)TRUE, (LPARAM)m_nid.hIcon);
}
멀티라인헤더 및 배경색 추가 리스트콘트롤 - CListCtrlEx
2008. 11. 26. 14:40
리스트콘트롤의 헤더에서 멀티라인 지원하는 클래스.
http://www.codeproject.com 에 있는 자료를 필요에 의해 짜집기 및 수정해서 만들었다.
사용법은 간단하다.
http://www.codeproject.com 에 있는 자료를 필요에 의해 짜집기 및 수정해서 만들었다.
사용법은 간단하다.
// 헤더파일 추가
#include "ListCtrlEx.h"
CListCtrl 멤버변수를 CListCtrlEx로 바꿔주고...
// 헤더 추가
LV_COLUMN lvcolumn;
lvcolumn.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
lvcolumn.fmt = LVCFMT_CENTER;
lvcolumn.cx = 0;
lvcolumn.pszText = " ";
m_ctrlList.InsertColumn(nIdx++, &lvcolumn);
lvcolumn.fmt = LVCFMT_RIGHT;
lvcolumn.cx = 100;
lvcolumn.pszText = "공사비용\n(만원)";
m_ctrlList.InsertColumn(nIdx++, &lvcolumn);
lvcolumn.fmt = LVCFMT_RIGHT;
lvcolumn.cx = 80;
lvcolumn.pszText = "공정률\n(%)";
m_ctrlList.InsertColumn(nIdx++, &lvcolumn);
// 모든 헤더가 추가된 후 마지막에 한줄 추가
m_ctrlList.Initializing(320, "견명조");
위와 같이 하면 헤더에 멀티라인 적용되며, 데이터는 한줄 번갈아가며 배경색이 적용된다.