이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date |
2010/04/11 18:58:47 |
Name |
희주 |
Subject |
MFC에서 콤보박스와 배열초기화시 인덱스관련 질문입니다. |
제가 하고싶은것은 콤보박스로부터 입력을 받은 값을 다른클래스의 변수로 입력을 받습니다.
그 받는값은 배열의 인덱스로 쓰일 건데요. 여기서 자꾸 에러가 나네요. 배열선언시 인덱스가 0이면 안되는것은 알겠는데 해결방법을 모르겠어요.
그리고 콤보박스 쓰는 부분도 인터넷에서 찾아서 따라한거라서 확실한지도 잘모르겠어요.
제코드와 궁금한 부분을 아래 올리겠습니다.
1. 콤보박스 코드 : 여기서 포인터 사용부분이 제대로 된건지요? 메인클래스는 MIP_HJView 입니다.
#include "MainFrm.h"
#include "MIP_HJView.h"
void CMaskCombo::OnSelchangeComboMask()
{
CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();
CMIP_HJView *pView = (CMIP_HJView *)pFrame->GetActiveView();
// TODO: Add your control notification handler code here
int nIndex;
nIndex = m_MaskCombo.GetCurSel();
m_MaskCombo.GetLBText(nIndex, selectCombo);
SetDlgItemText(IDC_COMBO_MASK, selectCombo);
if(selectCombo == "3*3"){
pView->maskIndex = 9;
UpdateData(FALSE);
pView->Invalidate();
}
else if(selectCombo == "5*5"){
pView->maskIndex = 25;
UpdateData(FALSE);
pView->Invalidate();
}
else if(selectCombo == "7*7"){
pView->maskIndex = 49;
UpdateData(FALSE);
pView->Invalidate();
}
}
여기서 변수를 받아서 MIP_HJView 클래스에 전역변수 maskIndex 로 들어갑니다.
maskIndex는 일단 생성자에서 1로초기화했습니다.(이건별로 안중요한것 같네요. 하나 안하나 에러는 똑같이 나왔으니까요.)
2. 두번째 이제 maskIndex를 쓰는 함수인데요 여기서 배열을 선언하려고하는데
#include "MaskCombo.h"
void CMIP_HJView::OnBlurring()
{
CMaskCombo dlg;
dlg.DoModal();
//여기부터는 배열을 선언하는 부분입니다.
double mask[maskIndex];
unsigned char origImg[maskIndex][3];
그냥 밖에다가 이렇게 선언하면 아예 안되더라고요. 배열에서 불명확한 변수로 선언하면
안되는거 같아서 아래와 같이 했습니다.
if(maskIndex==9){
double mask[9];
unsigned char origImg[9][3];
}
else if(maskIndex==25){
double mask[25];
unsigned char origImg[25][3];
}
else if(maskIndex==49){
double mask[49];
unsigned char origImg[49][3];
}
for(i=0; i<maskIndex; i++){ //origImg배열 초기화
for(j=0; j<3; j++)
origImg[i][j]=0; /////////////여기서부터 에러가 와장창 뜹니다. 이유는 배열선언인것 같습니다. 해결방법좀 부탁드려요.
}
.............................생략
}
|
통합규정 1.3 이용안내 인용
"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
|