BOOL CDualListManager::ProcessCmdMsg(int nID, int nCode)
{
BOOL bProcessed = TRUE; // Add
if(nID == m_iIDAddButton)
MoveSelected(m_AvailableList, m_AvailableArray, m_ChoosenArray, FALSE);
// Add All
else if(nID == m_iIDAddAllButton)
MoveAll(m_AvailableList, m_ChoosenList, m_AvailableArray, m_ChoosenArray);
// Remove
else if(nID == m_iIDRemoveButton)
MoveSelected(m_ChoosenList, m_ChoosenArray, m_AvailableArray, TRUE);
// Remove All
else if(nID == m_iIDRemoveAllButton)
MoveAll(m_ChoosenList, m_AvailableList, m_ChoosenArray, m_AvailableArray);
// Move Down
else if(nID == m_iIDMoveDownButton)
MoveUpOrDown(FALSE);
// Move Up
else if(nID == m_iIDMoveUpButton)
MoveUpOrDown(TRUE);
// Double Click on an item in the from list
else if(nID == m_iIDAvailableList && nCode == LBN_DBLCLK)
MoveSelected(m_AvailableList, m_AvailableArray, m_ChoosenArray, FALSE);
// Double Click on an item in the to list
else if(nID == m_iIDChoosenList && nCode == LBN_DBLCLK)
MoveSelected(m_ChoosenList, m_ChoosenArray, m_AvailableArray, TRUE);
// Selection changed in the from list
else if(nID == m_iIDAvailableList && nCode == LBN_SELCHANGE)
EnableButtons();
// Selection changed in the to list
else if(nID == m_iIDChoosenList && nCode == LBN_SELCHANGE)
EnableButtons();
else
bProcessed = FALSE; if(bProcessed == TRUE)
{
EnableButtons();
}
return bProcessed;
}这是处理消息的函数,是作者自己写的。
在OnCmdMsg()函数中调用他的。现在问题是,他不断地循环调用这个函数里面的各个消息,导致对话框一闪闪的,最后停下来的时候,所有的控件都变成禁用状态了。我就是模仿他原来的做的,感觉没任何问题,控件的属性也都一样。
{
BOOL bProcessed = TRUE; // Add
if(nID == m_iIDAddButton)
MoveSelected(m_AvailableList, m_AvailableArray, m_ChoosenArray, FALSE);
// Add All
else if(nID == m_iIDAddAllButton)
MoveAll(m_AvailableList, m_ChoosenList, m_AvailableArray, m_ChoosenArray);
// Remove
else if(nID == m_iIDRemoveButton)
MoveSelected(m_ChoosenList, m_ChoosenArray, m_AvailableArray, TRUE);
// Remove All
else if(nID == m_iIDRemoveAllButton)
MoveAll(m_ChoosenList, m_AvailableList, m_ChoosenArray, m_AvailableArray);
// Move Down
else if(nID == m_iIDMoveDownButton)
MoveUpOrDown(FALSE);
// Move Up
else if(nID == m_iIDMoveUpButton)
MoveUpOrDown(TRUE);
// Double Click on an item in the from list
else if(nID == m_iIDAvailableList && nCode == LBN_DBLCLK)
MoveSelected(m_AvailableList, m_AvailableArray, m_ChoosenArray, FALSE);
// Double Click on an item in the to list
else if(nID == m_iIDChoosenList && nCode == LBN_DBLCLK)
MoveSelected(m_ChoosenList, m_ChoosenArray, m_AvailableArray, TRUE);
// Selection changed in the from list
else if(nID == m_iIDAvailableList && nCode == LBN_SELCHANGE)
EnableButtons();
// Selection changed in the to list
else if(nID == m_iIDChoosenList && nCode == LBN_SELCHANGE)
EnableButtons();
else
bProcessed = FALSE; if(bProcessed == TRUE)
{
EnableButtons();
}
return bProcessed;
}这是处理消息的函数,是作者自己写的。
在OnCmdMsg()函数中调用他的。现在问题是,他不断地循环调用这个函数里面的各个消息,导致对话框一闪闪的,最后停下来的时候,所有的控件都变成禁用状态了。我就是模仿他原来的做的,感觉没任何问题,控件的属性也都一样。
BOOL EnableButton( int nID, BOOL bEnable = TRUE );Return ValueNonzero if successful; otherwise zero.ParametersnIDCommand identifier of the button to enable or disable.bEnableTRUE to enable the button; FALSE to disable the button.