在报表中写数据

 
case WM_NOTIFY:
                     LPNMITEMACTIVATE lpnmitem;
                  switch(LOWORD(wParam))
                     {
                     case ID_LIST:
                            lpnmitem=(LPNMITEMACTIVATE)lParam;
                            if(lpnmitem->hdr.code==NM_CLICK||lpnmitem->hdr.code==NM_SETFOCUS)
                            {    
                                   if(hListEdit!=NULL)
                                   {
                                          GetWindowText(hListEdit,buff,10);
                                          SetItemText(hDlg,curpos.x,curpos.y,buff);
                                          DestroyWindow(hListEdit);                                                   
                                          hListEdit=NULL;
                                   }
                                   curpos.x=lpnmitem->iItem;
                                   curpos.y=lpnmitem->iSubItem;
                                   if(curpos.y<1||curpos.x<0)
                                          return 0;
                                   Rect.top=lpnmitem->iSubItem;
                                   Rect.left=LVIR_BOUNDS;
                                   SendDlgItemMessage(hDlg,ID_LIST,LVM_GETSUBITEMRECT,(WPARAM)lpnmitem->iItem,(LPARAM)&Rect);
                                   hListView=GetDlgItem(hDlg,ID_LIST);
                                   hListEdit=CreateWindow("EDIT","",WS_CHILD|WS_BORDER|WS_VISIBLE,Rect.left,Rect.top,Rect.right-Rect.left,Rect.bottom-Rect.top,hListView,(HMENU)ID_LISTEDIT,hInst,NULL);
                                   lvi.mask=LVIF_TEXT;
                                   lvi.iItem=lpnmitem->iItem;        //行数
                                   lvi.iSubItem=lpnmitem->iSubItem;         //列数
                                   lvi.pszText=buff;       //文本
                                   lvi.cchTextMax=20;
                                   SendDlgItemMessage(hDlg,ID_LIST,LVM_GETITEMTEXT,lpnmitem->iItem,(LPARAM)(LPLVITEM)&lvi);
                                   SetWindowText(hListEdit,buff);
                                   SetFocus(hListEdit);
                            }
                            break;
                     }
                     break;
WM_COMMAND://取消编辑框
if(hListEdit!=NULL)
              {
                     GetWindowText(hListEdit,buff,10);
                     SetItemText(hDlg,curpos.x,curpos.y,buff);
                     DestroyWindow(hListEdit);                                                                        
                     hListEdit=NULL;
              }

 响应滚动条消息

hListView=GetDlgItem(hDlg,ID_LIST);
OldList=(WNDPROC)SetWindowLong(hListView,GWL_WNDPROC,(LPARAM)ListProc);//设置消息响应例程

LRESULT CALLBACK ListProc(HWND hList,UINT message,WPARAM wParam,LPARAM lParam)
{
 char buff[10];

 switch(message)
 {
 case WM_HSCROLL:
  if(hListEdit!=NULL)
  {
   GetWindowText(hListEdit,buff,10);
   SetItemText(hDlgMain,curpos.x,curpos.y,buff);
   DestroyWindow(hListEdit);            
   hListEdit=NULL;
  }
  break;
 }
 return CallWindowProc (OldList, hList, message, wParam, lParam) ; //其他消息返回原消息处理例程
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值