jjzjj

windows - CWnd 图标发生了什么

我有一个动态创建的CWnd窗口,标题栏区域和任务栏的图标似乎是随机选择的。要设置图标,我调用://Settheiconforthisdialog.Theframeworkdoesthisautomaticallywhentheapplication'smainwindowisnotadialogm_hIcon=AfxGetApp()->LoadIconW(IDI_ICON);SetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon与MFC示例一样,但似乎始终选择并缩小了32x32图标,即使还有其他更接

windows - 如何防止 CWnd 获得焦点?

我编写了一个MFC应用程序,需要一个不会将输入焦点从另一个窗口移开的按钮。不幸的是,当用户用鼠标单击按钮时,删除WS_TABSTOP样式没有帮助。当我阻止WM_LBUTTONDOWN时,我没有看到视觉按下指示,所以这也不起作用。 最佳答案 如果有一个特定的窗口您想保持焦点,您可以在按钮的OnLButtonDownCWnd::SetFocus()命令将焦点强制返回到您的窗口处理程序。如果您希望焦点恢复到多个窗口之一,您可以尝试子类化CButton并捕获当键盘焦点更改为按钮时发送的CWnd::OnSetFocus()消息。OnSetFo

windows - 如何防止用户拖动窗口?

我继承了一个向用户展示一组选项卡的项目,每个选项卡都包含一个显示多个组件的View。在其中一些选项卡中,我们希望防止用户移动选项卡中显示的组件。我们有一个继承自CMFCTabCtrl的对象来管理我们的选项卡,它包含代表我们每个选项卡的CWnd对象的集合。我们还有一个对象来管理与每个选项卡关联的View,并在激活相关选项卡时激活这些View。所有组件都共享一个继承自CWnd的基础对象,它为继承的消息映射中定义的消息定义了各种处理程序。防止用户拖动这些组件的正确/最佳方法是什么?谢谢! 最佳答案 一种解决方案是从组件CWnd中删除标题栏

c++ - 如果我有一个引用该控件的 CWnd 对象,是否有一种方法可以获取对 MFC 对话框上所有子窗口或控件的引用?

假设我有一个带有多个按钮的MFC对话框。(例如“红色”、“蓝色”、“绿色”和“黄色”按钮)这些按钮都有诸如("IDC_BUTT_RED","IDC_BUTT_BLUE","IDC_BUTT_GREEN","IDC_BUTT_YELLOW")鉴于我有一个CWnd对象,它引用放置这些按钮的对话框窗口。有没有办法获取这些ID的列表?我知道有一个CWnd::GetNextDlgGroupItem方法,根据描述应该循环访问一组控件。我尝试使用它,传入一个引用其中一个按钮的CWnd对象,然后调用GetWindowText方法进行检查,但它总是返回对自身的引用。 最佳答案

TCP的三个窗口:发送窗口swnd、接收窗口rwnd、拥塞窗口cwnd

在文章TCP滑动窗口协议与流量控制中,我们已经理解了滑动窗口(发送窗口swnd和接收窗口rwnd)。在发送端TCP通过发送窗口提高分组报文的传输效率,同时TCP也要求发送端维护一个接收窗口(rwnd)以提供流量控制,注意接收窗口的值是由接收方计算出来,并通报给发送方后,让发送方用来计算出接收窗口后主动做流量发送控制的。因为TCP是全双工通信,所以两边的主机同时都是发送方和接收方,所以两边的主机都同时维护了自己的滑动窗口(发送窗口swnd和接收窗口rwnd)。注意在不考虑拥塞控制等算法的情况下,发送窗口swnd和接收窗口rwnd就会退化成完全相等的同一个窗口。通常TCP有三个窗口,接收窗口rwn

c++ - MFC:RadioButton 在 CWnd 的子类中不起作用(变灰)

简介:我有一个派生自CWND的类(自定义窗口)。这个自定义类有一个单选按钮(CButton)和一堆其他静态控件。问题:当创建单选按钮时,它是灰色的,点击它什么也不做。用于创建的代码非常简单:m_radioButton->Create(_T("rButton1.1"),WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,CRect(5,5,300,15),this,2001);我试着添加ON_BN_CLICKED(2001,method())事件但未被触发。我也有ShowWindow()和EnableWindow()方法,但这也不起作用。问题:由于此类不是从CD

c++ - CWnd::CreateDlgIndirect 离开 m_hWnd==NULL

我正在处理的对话框未显示,使用:CWnd::CreateDlgIndirect(LPCDLGTEMPLATElpDialogTemplate,CWnd*pParentWnd,HINSTANCEhInst)对CreateDlgIndirect的调用是在lon-used基类中进行的,它有效地获取了资源文件中对话框模板的IDD-它适用于许多其他对话框,但我看不出我的对话框有什么不同。当以更正常的方式创建时,我的对话框工作正常,但我必须使用基类,因为它内置了许多其他功能。我在dlgcore.cpp中搜索CWnd::CreateDlgIndirect时发现,普通的Win32API调用失败了:hW

从hwnd永久cwnd

我们遇到了临时手柄的问题。正如我在这里阅读的那样:从cwnd::fromhandle获得的CWND的寿命是什么?CWnd::FromHandle()将创建一个临时手柄。我们的计划是存储手柄以备后用,但这不起作用。我们也尝试了CWnd::FromHandlePermanent()但这在某种程度上返回了无效的指针。并且mpWnd->Attach(mhWnd);丢下了违规例外。如果可能的话,我们想存储CWnd而不是HWnd并打电话FromHandle()每次CWnd是必须的。有人知道解决方案吗?看答案你只得到一个永久的CWnd如果您是对象子类现有窗口,或者您创建一个CWnd与其中之一CWnd::Cr

networking - TCP Reno 中的慢启动阈值

比方说,超时发生在慢启动阶段结束时。届时,窗口大小将减半。之后,它进入拥塞避免阶段而不是再次进入慢启动阶段。在这种情况下,慢启动阈值是多少?是慢启动的结束还是拥塞避免阶段的开始? 最佳答案 对于一个新的连接,接收窗口大小(rwnd)从A开始,拥塞窗口(cwnd)从B开始。在没有ACK的情况下,发送方不能发送超过cwnd和rwnd的最小值的字节。发送方每次收到ACK时都会增加cwnd。超时发生时,cwnd为X,rwnd为Y,cwnd和rwnd的最小值为Z。因此,超时后,慢启动thershold将是Z/2,或至少1段,cwnd将是1段。

windows - 如何在 Windows 上找出它为连接计算的 ssthresh 和 cwnd

我想知道Windows为连接计算了哪些ssthresh和cwnd。例如在Linux上我可以做iprouteshowcache查看计算值。 最佳答案 您可以在Windows中执行此操作,但您必须自己编写程序。看看这个:http://msdn.microsoft.com/en-us/library/windows/desktop/bb485738%28v=vs.85%29.aspxGetPerTcpConnectionEStats函数(自Vista起可用)可以为您提供各种信息,例如cwnd、ssthresh、dupack、rtt、sac
12