示例#1
0
GXLRESULT CMOPropertySheetReceiver::InvokeNotify( GXNMHDR* pnmhdr )
{
  //CGXPropertySheetReceiver* pPropReceiver = TryCastReceiver(pReceiver, m_pReceiver);
  //if(pPropReceiver == 0) {
  //  return -1;
  //}

  if( ! gxIsWindow(pnmhdr->hwndFrom)) {
    return -1;
  }

  CMOPropertySheet PropWnd(pnmhdr->hwndFrom);
  NM_PROPSHEETW* pItemDesc = (NM_PROPSHEETW*)pnmhdr;

  if(pnmhdr->code == GXNM_CLICK || pnmhdr->code == GXNM_HOVER) {
    OnValueChanging(&PropWnd, pItemDesc->strName, pItemDesc);
  }
  else if(pnmhdr->code == GXNM_RETURN) {
    OnValueChanging(&PropWnd, pItemDesc->strName, pItemDesc);
  }
  else {
    CLBREAK; // 增加对应处理
  }
  return 0;
}
void CXTPReportRecordItemVariant::OnEditChanged(XTP_REPORTRECORDITEM_ARGS* pItemArgs,
												LPCTSTR szText)
{
	COleVariant var(szText);

	if (OnValueChanging(pItemArgs, &var))
	{
		TRY
		{
			CXTPReportControlLocale::VariantChangeTypeEx(var, m_oleValue.vt == VT_NULL ? (VARTYPE)VT_BSTR : m_oleValue.vt);
		}
		CATCH_ALL(e)
		{
			return;
		}
		END_CATCH_ALL

		m_oleValue = var;
	}