vc 상용 지식 분류
A: 대화 상자의 OnInitDialog에서 호출:
ShowWindow(SW_MAXIMIZE); //
MSDN:
OnInitDialog, OnOK, and OnCancel are virtual functions. To override them, you declare an overriding function in your derived dialog class using the Properties window.
Member function
Message it responds to
Purpose of the override
OnInitDialog
WM_INITDIALOG
Initialize the dialog box's controls.
2、static 글꼴 크기를 어떻게 설정합니까?
답: OnInitDialog에서 먼저CreateFont, 그리고SetFont:
BOOL CLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CFont font;
font.CreateFont(24, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, _T( " ")); //24
GetDlgItem(IDC_STATIC_NAME)->SetFont(&font);
GetDlgItem(IDC_STATIC_SEX)->SetFont(&font);
GetDlgItem(IDC_STATIC_GROUP)->SetFont(&font);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
수정: 상술한 문제가 있습니다. 화면을 한 번 새로 고치면 글꼴이 기본값으로 돌아갑니다. 글꼴 변수 font가 전역 변수나 구성원 변수로 정의되어야 하기 때문입니다.3. 어떻게 탭 순서를 설정합니까?
A: 대화 상자에서 Ctrl + D
4, 어떻게 메시지 정의 함수를 삭제합니까?
대답:
우선 헤더 파일에서 메시지 함수 정의를 삭제합니다
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
그 다음에 원본 파일에서 메시지 함수 응답을 삭제합니다
BOOL CMatchDlg::OnEraseBkgnd(CDC* pDC)
{
//TODO: Add your message handler code here and/or call default
return CDialog::OnEraseBkgnd(pDC);
}
마지막으로 BEGIN에서MESSAGE_MAP 및 ENDMESSAGE_MAP에서 메시지 응답 매크로를 제거하려면:
ON_WM_ERASEBKGND()
5. 대화상자 배경 그림은 어떻게 대화상자 크기에 적응합니까?대화상자가 커지면 그림이 자동으로 확대된다는 것이다.대화상자가 시간으로 바뀌면 그림이 자동으로 축소됩니다.
A:StretchBlt 함수 사용
Msdn의 StretchBlt 설명:
Copies a bitmap from a source rectangle into a destination rectangle, stretching or compressing the bitmap if necessary to fit the dimensions of the destination rectangle.(목표 직사각형 크기에 맞게 그림을 스트레칭하거나 압축)
OnEraseBkgnd 함수에서 StretchBlt 함수를 호출합니다.
6. 입방근 구하기
float x;
x=10.1;
long y;
y=3;
long z;
z=x*y;
float m=pow(z,1.0/3.0); //pow long int ,float
//pow 함수의 첫 번째 인자는long 또는 int형이고float형 컴파일 오류
1>d:\backup\내 문서\visual 스튜디오 2008\projects\hjh\hjh\hjhdlg.cpp(163) : error C2666: 'pow' : 6 overloads have similar conversions 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): could be 'long double pow(long double,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(573): or 'long double pow(long double,long double)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): or 'float pow(float,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(525): or 'float pow(float,float)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): or 'double pow(double,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(123): or 'double pow(double,double)'
why???
또한 두 번째 매개변수는 소수점 형식으로 써야 합니다. 그렇지 않으면 오류가 발생합니다.
1>d:\backup\내 문서\visual 스튜디오 2008\projects\hjh\hjh\hjhdlg.cpp(163) : error C2668: 'pow' : ambiguous call to overloaded function 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): could be 'long double pow(long double,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): or 'float pow(float,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): or 'double pow(double,int)' 1> while trying to match the argument list '(long, int)'
또한 두 번째 매개변수는 O보다 커야 합니다. 그렇지 않으면 계산 결과가 -1#입니다.IND00
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Microsoft에 인증되지 않은 취약점? 이야기Microsoft는 제품이나 서비스의 취약성을 발견하면 보상금을 받을 수 있는 제도 「Microsoft Bug Bounty Program」이 있다. 본 기사에서는 Microsoft에 인정되지 않았지만, 유저에게의 리...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.