VC++中实现程序启动后隐藏窗口,最小化到托盘图标。

对话框型程序的窗口隐藏:


1.OnInitDialog()中加上ShowWindow(SW_HIDE),无效。

2.在OnPaint()中加上ShowWindow(SW_HIDE),有效,但会闪烁。

3.重载虚函数WindowProc():

LRESULT CTestDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){
    ShowWindow(SW_SHOW);
    return CDialog::DefWindowProc(message, wParam, lParam);
}


4.在OnInitDialog()中使用SetWindowPlacement():

GetWindowPlacement(&m_wp); // 恢复时用

WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp);

文档类型程序的窗口隐藏:

参见:实现VC程序启动时最小化到任务栏(完美解决闪烁问题)


取消任务栏显示窗口条:

ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW); // 从任务栏中去掉


最小化到托盘图标:


 方式1: 实现VC程序启动时最小化到任务栏(完美解决闪烁问题)


方式2:如何将程序启动时最小化到托盘



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用VC++6.0编写程序实现哈夫曼编码的步骤: 1.定义哈夫曼树的结构体和节点结构体 ```c++ // 哈夫曼树结构体 struct HuffmanTree { int weight; // 权值 int parent; // 父节点下标 int lchild; // 左孩子下标 int rchild; // 右孩子下标 }; // 哈夫曼树节点结构体 struct HuffmanNode { int weight; // 权值 char ch; // 字符 string code; // 编码 }; ``` 2.定义比较函数,用于排序 ```c++ bool cmp(HuffmanTree a, HuffmanTree b) { return a.weight < b.weight; } ``` 3.创建哈夫曼树 ```c++ void createHuffmanTree(HuffmanTree tree[], int n) { int i, j, k; for (i = 0; i < 2 * n - 1; i++) { tree[i].parent = -1; tree[i].lchild = -1; tree[i].rchild = -1; } for (i = 0; i < n; i++) { cout << "请输入第" << i + 1 << "个节点的权值:"; cin >> tree[i].weight; } for (i = 0; i < n - 1; i++) { int min1 = -1, min2 = -1; for (j = 0; j < n + i; j++) { if (tree[j].parent == -1) { if (min1 == -1) { min1 = j; } else if (min2 == -1) { min2 = j; } else { if (tree[j].weight < tree[min1].weight) { min2 = min1; min1 = j; } else if (tree[j].weight < tree[min2].weight) { min2 = j; } } } } tree[min1].parent = n + i; tree[min2].parent = n + i; tree[n + i].lchild = min1; tree[n + i].rchild = min2; tree[n + i].weight = tree[min1].weight + tree[min2].weight; } } ``` 4.生成哈夫曼编码 ```c++ void createHuffmanCode(HuffmanTree tree[], HuffmanNode node[], int n) { int i, j, k; for (i = 0; i < n; i++) { node[i].ch = i + 'a'; node[i].weight = tree[i].weight; int parent = tree[i].parent; int current = i; while (parent != -1) { if (tree[parent].lchild == current) { node[i].code = '0' + node[i].code; } else { node[i].code = '1' + node[i].code; } current = parent; parent = tree[parent].parent; } } } ``` 5.输出哈夫曼编码 ```c++ void printHuffmanCode(HuffmanNode node[], int n) { cout << "字符\t权值\t编码" << endl; for (int i = 0; i < n; i++) { cout << node[i].ch << "\t" << node[i].weight << "\t" << node[i].code << endl; } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值