我们正在使用C++和Win32编写Windows桌面应用程序.我们的对话框外观丑陋,带有"Windows XP风格":静态文本的背景为灰色.对话框背景也是灰色的,这不是问题,但在选项卡控件中,背景为白色,文本的灰色背景非常明显.
在过去,我们已经做了很多自己的控件绘制,但是现在我们尽可能地使用标准的look'n'feel,并尽可能避免重写标准行为.
我们正在使用Win32 API,它有点过时,但我认为即使使用ATL也会出现问题.我们正在创建一个DIALOGTEMPLATE.该文本处于"静态"控制(0x0082).我们为样式设置的唯一标志是"SS_LEFT".文本控件位于选项卡控件内:"SysTabControl32"只有一个标志:WS_CLIPSIBLINGS设置在其上.我已经尝试过SS_WHITERECT和WS_EX_TRANSPARENT等设置,但无济于事.
所有这些都是使用标准的Windows对话框消息处理程序绘制的.我的主要问题是"我们做错了什么?" 而不是"我怎么能解决它?",虽然如果没有人可以帮我解决第一个问题,我会接受后者.
有任何想法吗?
http://www.cs.chalmers.se/Cs/Research/Language-technology/BNFC/
我该如何编写带标签的BNF来让BNFC为我生成一个INI解析器?
我到目前为止只有o__O!
entrypoints File ;
comment "#" ;
token ID ( letter | digit | ["-_'"] )+ ;
Ini. File ::= [Section] ;
Sect. Section ::= "[" ID "]" [Statement] ;
Bind. Statement ::= ID "=" ID ;
separator Statement "\n" ;
terminator Section "" ;
Run Code Online (Sandbox Code Playgroud)
[name]
#x = 10
y = 20
Run Code Online (Sandbox Code Playgroud)
Parse Successful!
[Abstract Syntax]
Ini [Sect (ID "name") [Bind (ID "y") (ID "20")]]
[Linearized tree]
[name]y = 20
Run Code Online (Sandbox Code Playgroud)
[name]
x = 10
#y = 20
Run Code Online (Sandbox Code Playgroud)
Parse …Run Code Online (Sandbox Code Playgroud) 我想在我的应用程序中使用COM对象.
如何确保对象已在机器中注册?
我找到的唯一解决方案(也是在SO上)是在初始化时使用try-catch块:
try {
Foo.Bar COM_oObject = new Foo.Bar();
} catch (Exception ee) {
// Something went wrong during init of COM object
}
Run Code Online (Sandbox Code Playgroud)
我可以用其他方式吗?
我觉得通过期待和报告错误来处理错误是错误的,我宁愿知道我会失败并避免它开始.
任何人都可以提供指向linux命令源代码的指针,如'sort','uniq'等?
在显式事务中,如果我通过给出BEGIN TRANS来启动事务但是如果我不给COMMIT,ROLLBACK或END TRANS那么应用程序会发生什么?
我过去几周一直在为我们的企业应用程序评估Asp.Net MVC框架.我想要实现的一件事是Master-Details视图.很明显,没有视图状态,也没有回发.现在,例如,我正在使用Northwind数据库中的产品,客户,订单和订单明细表,并使用Asp.Net MVC我想创建一个主 - 详细信息视图.基本上我不想为订单和订单明细提供单独的视图(换句话说,页面).视图应包含订单和订单明细.我应该如何设计我的控制器和视图来实现此功能.
谢谢和问候,Burhanuddin Ghee Wala
我在使用RIM压缩API时遇到了一个奇怪的问题,我无法使其工作,因为它在文档中有描述.
如果我使用win gzip工具 gzip纯文本文件,将gz添加到blackberry项目的资源中并在app中尝试解压缩,将会有无限循环,gzis.read()永远不会返回-1 ...
try
{
InputStream inputStream = getClass().getResourceAsStream("test.gz");
GZIPInputStream gzis = new GZIPInputStream(inputStream);
StringBuffer sb = new StringBuffer();
char c;
while ((c = (char)gzis.read()) != -1)
{
sb.append(c);
}
String data = sb.toString();
add(new RichTextField(data));
gzis.close();
}
catch(IOException ioe)
{
}
Run Code Online (Sandbox Code Playgroud)
在压缩内容之后,gzis.read()中重复65535值.我发现的唯一解决方法是愚蠢的
while ((c = (char)gzis.read()) != -1 && c != 65535)
Run Code Online (Sandbox Code Playgroud)
但我很好奇是什么原因,我做错了什么,为什么65535?
我有一张包含类别,产品和数量的表格.所有整数.我正在寻找最有效的查询,它将为我提供每个类别的前十大产品(最高计数).
我已经尝试了几个子选择和连接,但无法弄清楚如何在单个查询中执行此操作.谢谢你的帮助.
在MacBook上的Mac OS X上的应用程序.计算机上的大多数应用程序允许我通过触控板上的双指拖动来垂直和水平滚动.我想使用此功能将光标定位在emacs中.
将以下行添加到.emacs允许我垂直移动光标:
(global-set-key [wheel-up] 'previous-line)
(global-set-key [wheel-down] 'next-line)
Run Code Online (Sandbox Code Playgroud)
我不知道车轮左侧或右侧车轮的等效设置.有人可以帮忙吗?
我试过像$ _ENV ['CLIENTNAME'] =='Console'这样的东西,但这似乎只适用于某些操作系统(在Windows中工作,而不是linux).
我试过了!空($ _ ENV ['SHELL'])但是这总是不起作用......
有没有办法检查这将适用于所有操作系统/环境?
asp.net-mvc ×1
blackberry ×1
bnf ×1
c# ×1
c++ ×1
com ×1
compression ×1
console ×1
ebnf ×1
emacs ×1
gzip ×1
haskell ×1
interop ×1
linux ×1
mouse ×1
mysql ×1
parsing ×1
php ×1
scroll ×1
shell ×1
sql-server ×1
transactions ×1
validation ×1
winapi ×1
xp-theme ×1