잡동산..정리가 필요함. MFC 2006/11/21 22:26 http://blog.naver.com/zelatul0/31165666 |
AfxGetApp()->
(CDFConnect*)AfxGetMainWnd() 메인프레임에 접근
///////////////////////////////////////////////////////////////////////////////
void CDrawgraphDlg::OnPaint()
{
CPaintDC dc(this);
UpdateWndow(); //이거 한줄여..ㅡㅡ;;
CWnd* graphFrame = (CWnd*)GetDlgItem(IDC_GRAPH_FRAME);
CDC* pDC = graphFrame->GetDC();
testGraph->DrawGraph(pDC); //다른 클래스에 dc값을 넘겨 그림을 그려줌..
ReleaseDC(pDC);
}
저 한줄은 하위컨트롤들 먼저그려주게 하는거에염...
그러구 나서 그위에 그리면 윈도우가 밖으로 외출하지 않아도 되져..^^;;
주의하실 점은 만약 그리신 것이 컨트롤들을 덮어버림 보이지 않는다는 점이져..
사실 소스를 바꾸기가 그래서 그런데..혹시 이상하심
CDialog::OnPaint();
UpdateWindow();
으로 바꿔주세염.. CPaintDC부분 빼시구염..
그럼 즐푸하셈... 꾸벅
///////////////////////////////////////////////////////////////////////////////////
C_App::InitInstance()에보면
DialogBox를 생성하는 부분이 있습니다.
"int nResponse = dlg.DoModal();"
이부분을 주석처리해주면 처음부터 다이얼로그는 뜨지 않습니다.
다른 방법으로는 타이머를 이용해서
다이얼로그박스가 생성된 후 일정 시간 후에 SW_HIDE메세지를 보내서 사라지게 하는 방법이 있습니다.
트레이에만 표시되고 실행되는 경우라면 전자를 추천합니다.
///////////////////////////////////////////////////////////////////////////////
GetDlgItem(IDC_MAIN_WEEK)->ShowWindow(SW_HIDE);
///////////////////////////////////////////////////////////////////////////////
btn.EnableWindow(TRUE); --> 활성..
btn.EnableWindow(FALSE) --> 비활성..
////////////////////////////////////////////////////////////////////////////////
RegCreateKey//키값 만들기?
RegOpenKey//키값 등록
RegCloseKey//
RegEnumKey//읽기 하위 검색(?)
RegEnumKeyEx
RegEnumValue
RegQueryValue//읽기 하위는 검색안함(?)
RegQueryValueEx
RegSetValue//쓰기
RegDeleteKey//삭제
///////////////////////////////////////////////////////////////////////////////////
8. 스킨의 형태가 모서리가 둥글 경우 코딩
// Dialog 의 모서리를 라운드로 돌린다.
CRect rc;
GetWindowRect(rc);
CRgn rnd;
rnd.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 26, 26);
::SetWindowRgn(this->m_hWnd, (HRGN)rnd, TRUE);
//////////////////////////////////////////////////////////////////////////////////
시작 프로그램 등록
내컴퓨터\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 에 등록하면 된
////////////////////////////////////////////////////////////////////////////////////
윈도 최대화: ShowWindow(SW_MAIMIZE);
윈도 복구: ShowWindow(SW_RESTORE);
윈도 복구 할 때는 IsZoomed() 메소드로 확인한다음에 복구 합니다.
윈도 최소화: ShowWindow(SW_MINIMIZE);
IsIconic() 메소드가 TRUE를 반환한다면 최소화 상태임을 나타냅니다.
//////////////////////////////////////////////////////////////////////////////////////
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, NULL);
////////////////////////////////////////////////////////////////////////////////
문자열의 실제 픽셀 길이를 알려줌.
GetTextExtent()
///////////////////////////////////////////////////////////////////////////////////
앞쪽 공백 자동정렬
Alt + F8
/////////////////////////////////////////////////////////////////////////////////////
문자열 블럭지정
SetSel()
////////////////////////////////////////////////////////////////////////////////////
[답변] MFC/동적생성/ComboBox 메시지 받기
파일 첨부가 안되네.. 쩝..
.................................................
{//임의로 콤보박스를 생성...
CComboBox* pCombo = new CComboBox();
RECT rc = {10, (m_id * 25), 100, (m_id * 25) + 120};
pCombo->Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWN | WS_VSCROLL, rc, this, m_id++);
pCombo->AddString("하나 추가요");
pCombo->AddString("둘 추가요");
pCombo->AddString("셋 추가요");
}
//메시지 맵에 콤보 CBN_SELCHANGE메시지를 기입..
BEGIN_MESSAGE_MAP(CDComboDlg, CDialog)
//{{AFX_MSG_MAP(CDComboDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_CREATE, OnCreate)
//}}AFX_MSG_MAP
ON_CONTROL_RANGE(CBN_SELCHANGE, 1, 9999, OnSelChange)
END_MESSAGE_MAP()
//이 함수로 메시지가 날라온다..~~
void CDComboDlg::OnSelChange(UINT nID)
{
CString strText, strSel;
CComboBox* pCombo = (CComboBox*)GetDlgItem(nID);
pCombo->GetLBText(pCombo->GetCurSel(), strText);
strSel.Format("선택한 ID:%d, 문자열:%s", nID, strText);
MessageBox(strSel);
}
///////////////////////////////////////////////
double을 문자열로..
_gcvt()
///////////////////////////////////////////////
ini파일 작성
WritePrivateProfileString()
////////////////////////////////////////////////
작업표시줄 내리기 올리기
APPBARDATA appBarData;
ZeroMemory(&appBarData, sizeof(APPBARDATA));
appBarData.cbSize = sizeof(APPBARDATA);
appBarData.hWnd = GetSafeHwnd();
appBarData.lParam = AUTOHIDE;//ABS_ALWAYSONTOP
SHAppBarMessage(ABM_SETSTATE, &appBarData);
////////////////////////////////////////////////
미니덤프 만들기
MiniDumpWriteDump()
////////////////////////////////////////////////////
마이크로세컨드까지 시스템 카운트 구하기
데브피아 불펌
LARGE_INTEGER nStartClk;
LARGE_INTEGER nEndClk;
QueryPerformanceCounter(&nStartClk); // 시작 클록
// 시간 잴 부분을 여기에....
QueryPerformanceCounter(&nEndClk); // 끝나는 클록
LARGE_INTEGER frequency;
LONGLONG timeinmicroseconds = 0;
QueryPerformanceFrequency(&frequency); // 시스템 클록을 얻어옴
if( !frequency.QuadPart )
timeinmicroseconds = -1;
else
timeinmicroseconds // 1000이면 밀리세컨, 1000*1000이면 마이크로초 1000*1000*1000이면 나노초~
= (nEndClk.QuadPart-nStartClk.QuadPart)*1000*1000/frequency.QuadPart;
////////////////////////////////////////////////////////
작업표시줄 윈도우 핸들
FindWindow("Shell_traywnd", "")
////////////////////////////////////////////////////////
내 네트워크 정보
netstat.exe
/////////////////////////////////////////////////////
곡선 사각형
RoundRect()
////////////////////////////////////////////////////
점이 사각형 안에 있는지 판별
PtInRect()
////////////////////////////////////////////////////
투명윈도우
SetWindowLong(this->m_hWnd, GWL_EXSTYLE, GetWindowLong( this->m_hWnd, GWL_EXSTYLE ) | WS_EX_LAYERED);
SetLayeredWindowAttributes(NULL, TransLevelToNum(nLevel), LWA_ALPHA);
[출처] 잡동산..정리가 필요함.|작성자 자반칼치
'Computer Science' 카테고리의 다른 글
Flash 3D 관련 프로젝트 리스트 (0) | 2008.08.02 |
---|---|
컴퓨터원격부팅-원격으로 컴퓨터를 on-off한다 (0) | 2008.08.02 |
VHDL 동영상강좌 (0) | 2008.07.19 |
itfind IT 사이버 (동영상) 강좌 (0) | 2008.07.06 |
VHDL(VHSIC Hardware Description Language)...... (0) | 2008.07.06 |