WEB开发网
开发学院软件开发VC VC++开发的应用技巧三则放送 阅读

VC++开发的应用技巧三则放送

 2007-03-15 21:46:51 来源:WEB开发网   
核心提示: 以下是引用片段:/*服务器方在端口6802上等待连接,当连接建立后关闭监听套接口客户方向服务器端口6802发起连接请求*/BOOL CMy63_s1_serverDlg::OnInitDialog(){CDialog::OnInitDialog();CSocket sockListen;/
以下是引用片段:
/*
服务器方在端口6802上等待连接,当连接建立后关闭监听套接口
客户方向服务器端口6802发起连接请求
*/
BOOL CMy63_s1_serverDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  CSocket sockListen;
  //创建本地套接口
  sockListen.Create(6802,SOCK_STREAM,"127.0.0.1");
  //绑定参数
  sockListen.Bind(6802,"127.0.0.1");
  sockListen.Listen(5);
  //等待连接请求,m_sockSend为成员变量,用于通信
  sockListen.Accept(m_sockSend);
  //关闭监听套接口
  sockListen.Close();
  //启动定时器,定时发送数据
  
  SetTimer(1,3000,NULL);
}
void CMy63_s1_serverDlg::OnTimer(UINT nIDEvent)
{
  static iIndex=0;
  char szSend[20];
  sprintf(szSend,"%010d",iIndex++);
  //发送TCP数据
  int iSend= m_sockSend.Send(szSend,10,0);
}
BOOL CMy63_s1_clientDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  //创建本地套接口
  m_sockRecv.Create();
  //发起连接请求
  BOOL fC=m_sockRecv.Connect("127.0.0.1",6802);
  TRACE("connect is %s ",(fC)?"OK":"Error");
  //启动定时器,定时接收数据
  SetTimer(1,3000,NULL);
}
void CMy63_s1_clientDlg::OnTimer(UINT nIDEvent)
{
  char szRecv[20];
  //接收TCP数据
  int iRecv =m_sockRecv.Receive(szRecv,10,0);
  TRACE("received %d byte ",iRecv);
  if(iRecv>=0)
  {
    szRecv[iRecv]='';
    m_szRecv=szRecv;
    UpdateData(FALSE);
  }
}

3、让工具栏并列显示

假设在Windows程序窗口中有几个工具栏,现在我们希望让这些多个工具栏并列显示,该怎么实现呢?在这里,我们可以使用下面的函数来实现该功能,此函数是从CJ60Lib函数库弄下来的。笔者在下面的程序中实现的功能是,让LeftOf工具栏显示在Bar工具栏的左侧,同时还要并列显示在一起,下面就是实现其功能的主要代码:

以下是引用片段:
void CCJMDIFrameWnd::DockControlBarLeftOf(CControlBar* Bar,
CControlBar* LeftOf)
{
  CRect rect;
  DWORD dw;
  UINT n;
  // 使用MFC来调整所有工具栏的尺寸
  // 确保GetWindowRec准确
  RecalcLayout(TRUE);
  LeftOf->GetWindowRect(&rect);
  rect.OffsetRect(1,0);
  dw=LeftOf->GetBarStyle();
  n = 0;
  n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP: n;
  n = (dw&CBRS_ALIGN_BOTTOM&& n==0) ? AFX_IDW_DOCKBAR_BOTTOM:n;
  n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT:n;
  n = (dw&CBRS_ALIGN_RIGHT&& n==0) ? AFX_IDW_DOCKBAR_RIGHT:n;
  DockControlBar(Bar,n,&rect);
}

上一页  1 2 

Tags:VC 开发 应用技巧

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接